【发布时间】:2018-12-06 20:04:25
【问题描述】:
我有一个问题,看起来非常基本和简单,但我无法解决,即使我在互联网上进行了调查。由于我相信我跑到了一个角落并且无法找到我的出路,所以我将在这里陈述我的非常简单的问题。
假设:一个 JDK 11 项目包含一个名为 LoadResource 的模块。
项目结构
src
└── main
├── java
│ ├── module-info.java
│ └── com
│ └── example
│ └── LoadResource.java
└── resources
└── com
└── example
└── Foo.txt
模块信息.java
module {
exports example.com;
}
LoadResource.java
package com.example;
public class LoadResource {
public static void main(String... args) {
new LoadResource().run();
}
private void run() {
System.out.println("TEST");
final var resource = getClass().getResource("Foo.txt");
System.out.println(resource);
}
}
如果我运行这个getClass().getResource("Foo.text"); 会返回null。
我知道这是一个非常基本的问题,但是:为什么会这样?对我来说,这看起来是一个相当简单的编程任务。我在这里想念什么?
【问题讨论】:
-
/com/example/Foo.txt。资源文件夹是类路径中的根目录
-
@HenningLuther 这也不起作用。
-
您的资源文件夹在类路径中吗?想好了吗?
-
你能告诉我们输出目录吗?如果 Foo.txt 与 LoadResource.class 位于同一目录中,那么将在创建 JAR 文件时找到它,因为它们将位于同一“目录”中。否则,它看起来像是一个 IDE 或环境问题,其中 Foo.txt 未复制到正确的位置。
标签: java java-module java-11 java-platform-module-system