gpt4 book ai didi

eclipse - this.getClass().getClassLoader().getResource ("...") 和 NullPointerException

转载 作者:行者123 更新时间:2023-12-02 23:32:19 25 4
gpt4 key购买 nike

我在 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/

但仍然遇到同样的错误。

最佳答案

当您使用时

this.getClass().getResource("myFile.ext")

getResource 将尝试查找与包相关的资源。如果您使用:

this.getClass().getResource("/myFile.ext")

getResource 会将其视为绝对路径,并简单地调用类加载器,就像您完成后所做的那样。

this.getClass().getClassLoader().getResource("myFile.ext")

不能在 ClassLoader 路径中使用前导 / 的原因是因为所有 ClassLoader 路径都是绝对路径,因此 / 不是路径中有效的第一个字符。

关于eclipse - this.getClass().getClassLoader().getResource ("...") 和 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3803326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com