调试getResource*

pup*_*eno 17 java

如何调试失败的getResource- style方法,返回null?

我确定它正在寻找的文件存在,但它返回NULL.我怎么知道它试图找出任何不匹配的东西?

mat*_*t b 15

由于getResource()搜索了类路径(正如其他人提到的那样),在问题getResource()调用之前转储正在搜索的实际类路径可能会有所帮助:

log.debug("classpath is: " + System.getProperty("java.class.path"));

//the line that is returning null
... = Thread.currentThread().getContextClassLoader().getResource("foobar");
Run Code Online (Sandbox Code Playgroud)

可能发生的事情是你认为在类路径上的文件/目录实际上不是(可能在路上某处设置了无效路径).


bou*_*tta 4

您可以使用 Eclipse 调试模式并在失败的方法上设置断点。从那里您可以在调用树中逐步向下,直到看到失败的原因。

最常见的是该文件不存在,因为它没有复制到那里或不在类路径中等等......