如何解决this.getClassgetClassLoadergetResource“…”和NullPointerException
使用时
this.getClass().getResource("myFile.ext")
getResource将尝试查找相对于包的资源。如果您使用:
this.getClass().getResource("/myFile.ext")
getResource 会将其视为绝对路径,并像完成操作一样简单地调用类加载器。
this.getClass().getClassLoader().getResource("myFile.ext")
之所以不能/
在ClassLoader
路径中使用前导,是因为所有ClassLoader
路径都是绝对的,因此路径中的/第一个字符不是有效的。
解决方法
我在Eclipse Helios中创建了一个带有单个子模块的最小Maven项目。
在src / test / resources
文件夹中,我放置了一个文件“ install.xml”。在文件夹src / test /
java中,我创建了一个包含单个类的包,该类执行以下操作:
@Test
public void doit() throws Exception {
URL url = this.getClass().getClassLoader().getResource("install.xml");
System.out.println(url.getPath());
}
但是当我将代码作为junit 4单元测试运行时,我只是得到了NullPointerException。以前,这已经工作了一百万次了。有任何想法吗?
我遵循了此指南:
http://www.fuyun.org/2009/11/how-to-read-input-files-in-maven-junit/
但仍然出现相同的错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。