无法在我的linux服务器上创建文件,在我的本地测试文件上工作良好。请帮我解决这个问题,我不知道发生了什么,目录存在,但html不存在,它应该从代码中创建。
Thu Oct 22 03:04:06 PDT 2015============ fileNameBzAEqwsEk20Fk21Pl30Qj33Ss26Aj17BcdDZrt.html
Thu Oct 22 03:04:06 PDT 2015============ dirFileName/home/bms/html/webversion/BzAEqwsEk20Fk21Pl30Qj33Ss26Aj17BcdDZrt.html
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:883)
at com.PMSystems.CampaignManager.createWebVersion(CampaignManager.java:80)
at com.PMSystems.api.APICommandManager.executeCreateCampaignCommand(APICommandManager.java:1057)
at com.PMSystems.api.APICommandManager.executeOneToOneEmailCampaignCommand(APICommandManager.java:1293)
at com.PMSystems.api.APICommandManager.proccessCommand(APICommandManager.java:283)
at com.PMSystems.servlets.APIServlet.doServices(APIServlet.java:181)
at com.PMSystems.servlets.APIServlet.doPost(APIServlet.java:195)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at com.PMSystems.servlets.APIFilter.doFilter(APIFilter.java:56)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:662)我的代码:
File file = new File(dirFileName);
file.delete();
file.createNewFile();
DataOutputStream dataOut = new DataOutputStream(new FileOutputStream(file));
dataOut.writeBytes(view);发布于 2015-10-22 19:02:50
从开发机器(通常是Windows)转换到linux服务器时,可能导致问题的两个常见问题是
-Case灵敏度。在linux服务器上,您应该检查您的路径是否也是有效的,不区分大小写。例如,如果你在文件系统中有一个名为dirfilename的文件夹,而你的java路径是"dirFileName“,这将在windows上运行,但不能在linux服务器上运行。
-File权限。运行您的程序的jvm可能由对您试图访问的路径没有权限的用户运行。您可以使用'ps aux‘命令获取有关进程如何运行的更多信息。
https://stackoverflow.com/questions/33279168
复制相似问题