【问题标题】:Java class.getResource() returns nullJava class.getResource() 返回 null
【发布时间】:2016-03-08 16:05:35
【问题描述】:

我正在尝试使用在 IntelliJ 中标记为“资源根”的资源目录中的文件,但以下代码无法找到该文件。

你能告诉我出了什么问题吗?谢谢。

public class ResourceTest {
    public void testResource() {
        URL url = this.getClass().getResource("resources/table.1gram");
    System.out.println(url);
}
public static void main(String[] args) {
    ResourceTest rt = new ResourceTest();
    rt.testResource();
}

}

【问题讨论】:

  • “resources”与“resources2”、“table.1gram”与“table1.1gram”。
  • @Marvin 很抱歉有错别字,但修复这些错别字后仍然无法正常工作。
  • 尝试将“resources/table.1gram”更改为“classpath:resources/table.1gram”
  • @RafałPieńkowski 你的意思是用实际的类路径替换“类路径”吗?当我从字面上使用“classpath:resources/table.1gram”时,它仍然返回null。 :(
  • 我怀疑资源文件的路径。我对 IntelliJ 不熟悉,但你能找出资源文件和类文件是如何放置在目标文件夹中的吗?在你的情况下可能是 OUT 吗?

标签: java intellij-idea resources getresource


【解决方案1】:

resources文件夹中的文件会被打包到.jar文件的根目录下,也就是说在开发过程中resources文件夹本身在classpath中,所以需要this.getClass().getResource("/table.1gram"),或者不带@987654324 @ 因为你的类在未命名的包中,也就是在 .jar 文件的根目录中。

【讨论】:

    猜你喜欢
    • 2013-03-12
    • 2012-01-13
    • 2020-03-27
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多