[size=medium] 哎呀,现在可真是双重心情呀,真的是既兴奋又悲叹呀!兴奋地是这个"文件不存在的"的bug终于解决了,悲剧的是解决它浪费了我好长时间。以后碰到bug就得记录下来,可以作为经验之谈了,避免以后再犯类似的错误。
我的错误是调用用poi生成excel文件的方法后,死活就是给我报java.io.FileNotFoundException: D:\ProgramTools\apache-tomcat-6.0.26\webapps\BAW-phaseM\excel\ttakeinventory\2011-10-30_2011-11-26 23:59:59_YS_no_checked_.xls (文件名、目录名或卷标语法不正确。) 的错误。我前思后想,来回跟踪,都没有问题,就是到写入excel文件的时候,愣是写不进去。没办法了,只好请教了一下同事,他看到这个错误后就给我说是因为excel命名的问题,windows下的文件名不允许出现23:59:59类似这样的字符的。后来经验证,果然是这样,我就重新修改了一下名字,这份excel就顺利的诞生啦!哈哈。。真是太高兴啦!
Windows 中文件夹命名规则是:
① 文件名或文件夹名可以由1~256个西文字符或128个汉字(包括空格)组成,不能多于256个字符。
② 文件名可以有扩展名,也可以没有。有些情况下系统会为文件自动添加扩展名。一般情况下,文件名与扩展名中间用符号“.”分隔。
③ 文件名和文件夹名可以由字母、数字、汉字或~、!、@、#、$、%、^、&、( )、_、-、{}、’等组合而成。
④ 可以有空格,可以有多于一个的圆点。
⑤ 文件名或文件夹名中不能出现以下字符:\、/、:、*、?、"、<、>、| 。
⑥ 不区分英文字母大小写。
还有一种java.io.FileNotFoundException的错误,这种错误其实也是因为在这个路径中不存在这个jsp的编译文件。这个错误是我在发布程序到生产机上之后遇到的,原来是因为没有给这个jsp编译,最高效的解决办法是把本地生成的这个jsp的.java和.class文件copy到编译的文件的路径下面。如果是多个jsp文件都是没有编译的话,那就关闭tomcat,清楚缓存,就是把/usr/local/tomcat/work/Catalina的Catalina文件删除,重启就好了。
java.io.FileNotFoundException: /usr/local/tomcat/work/Catalina/localhost/User/org/apache/jsp/caiwushenhe_005fpicking_jsp.java (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:141)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
[/size]
java 目录命名规范 java目录名称无效
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux目录结构
在Linux中一切皆文件,这些文件按照一定的规则存放在不同的目录当中。为了能够快速找到文件及以后的操作的规范性,我们必须记清楚Linux的目录结构。
目录 云计算 Linux centos 自动化运维 -
Linux修改挂载目录名称
Local系统管理员新增了一个VG,将一个原挂`
sed 5g bash 配置信息 -
java工程目录命名 java项目目录规范
Java Web应用程序的规范目录结构 一、 Java Web应用程序必须使用规范的目录结构: – 应用程序根目录 – |-- WEB-INF
java工程目录命名 Java Web Context 应用程序 -
java 目录名称合法性检查
1 pwd:显示当前工作目录[root@minion ~]# pwd/root2 cd:切换当前工作目录[root@minion /]# cd #切换到当前用户的家目录[root@mi
java 目录名称合法性检查 linux的目录命令和文件操作命令 bc 当前目录 修改时间