在Eclipse IDE中,有一个独立的Java应用程序读取文件。这些文件全部位于项目下的文件夹中。
我创建了另一个web应用程序并编写了一个servlet,并将上述应用程序的jar文件添加到WEB_INF/lib中,以便我可以使用它中的所有类。servlet非常简单,但是java应用程序无法将文件读为它用于早期。我得到java.io.FileNotFoundException(系统找不到指定的路径)。
我检查了jar文件,它包含了包含要读取的文件的文件夹。我甚至尝试将文件夹添加到TOMCAT中的类路径中。但仍然无法摆脱那个错误。有人告诉我什么是错的?在servlet中的jar中运行类时出现FileNotFoundException
在那里我得到了错误的地方
public class KnowledgeSummaryServlet extends HttpServlet {
Answerer a = new Answerer();
类回答者是这样
public class Answerer {
Lookup lvg = new Lookup("resources/test/xyz", "resources/test/test.txt");
这是错误跟踪,一旦我运行Servlet
java.io.FileNotFoundException: resources\test\xyz (The system cannot
find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.util.Scanner.<init>(Scanner.java:656)
at com.Lookup.localInitialize(Lookup.java:49)
at com.Lookup.<init>(Lookup.java:44)
at com.Answerer.<init>(Answerer.java:27)
at com.web.KnowledgeSummaryServlet.<init>(KnowledgeSummaryServlet.java:20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:799)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
这是相当奇怪的是,你会得到一个'FileNotFoundException'在读取资源类路径。这表明你试图通过本地磁盘文件系统的方式来访问类路径资源,而不是通过类路径的方式,这是没有意义的。你可以编辑你的问题来显示你的尝试代码并粘贴整个堆栈跟踪? – BalusC 2012-04-27 03:03:28
我刚刚编辑了问题 – icedek 2012-04-27 04:26:44