如何调试getResource(http://java.sun.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String%29)-style方法失败,返回null?
我确信它正在寻找的文件就在那里,但它返回的是NULL。我如何知道它正在寻找什么来尝试发现任何不匹配?
发布于 2008-10-31 13:27:23
由于getResource()搜索类路径(正如其他人所提到的),因此在某些getResource()调用出现问题之前转储正在搜索的实际类路径可能会有所帮助:
log.debug("classpath is: " + System.getProperty("java.class.path"));
//the line that is returning null
... = Thread.currentThread().getContextClassLoader().getResource("foobar");可能发生的情况是,您认为在类路径上的文件/目录实际上不在(可能在此过程中的某个地方设置了无效的路径)。
发布于 2008-10-31 10:31:50
您可以使用Eclipse-debug-mode并在失败的方法上设置断点。从那里开始,你可以在调用树中一步一步地往下走,直到你看到失败的地方。
最常见的是文件不在那里,因为它没有被复制到那里,或者不在类路径中,等等。
发布于 2008-10-31 10:32:28
getResource调用正在查找与类文件相关的文件。
我的第一个猜测是,当您进行编译时,您忘记将资源文件放入compile文件夹。这就是我经常使用的。
https://stackoverflow.com/questions/253066
复制相似问题