java - 无法从包中加载资源
问题描述
我有一个问题似乎非常基本和简单,但我无法解决它,即使我在互联网上进行了调查。由于我相信我遇到了一个角落并且无法找到出路,所以我将在这里陈述我的非常简单的问题。
给定:一个 JDK 11 项目,其中包含一个名为LoadResource
.
项目结构
src
└── main
├── java
│ ├── module-info.java
│ └── com
│ └── example
│ └── LoadResource.java
└── resources
└── com
└── example
└── Foo.txt
模块信息.java
module {
exports example.com;
}
加载资源.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
。
我知道这是一个非常基本的问题,但是:为什么会这样?对我来说,这看起来是一个相当简单的编程任务。我在这里想念什么?
解决方案
--patch-module LoadResource=build/resources/main
我可以通过在 IntelliJ 中添加为 VM args 来解决我的问题。
推荐阅读
- eclipse - 为什么 STS 需要这么长时间来更新 Maven 依赖项?
- r - 如何生成 n 个马尔可夫链序列,每个序列有 25 个转换
- css - 在 CSS 中未显示 FontAwesome 图标:Chrome 中的选择器之后?
- css - Angular:页面显示不正确
- css - 模板JS | 在组件中使用 CSS "+ Selector"
- javascript - Javascript-在promise中使用apply for resolve时仅传递第一个参数
- wordpress - Wordpress 强制重定向到 https 某些页面不起作用
- html-select - HTML在Edge中选择多个不允许鼠标单击和拖动以选择多个项目
- php - zend-expressive 中的拆分路由配置
- java - 我想
在 XML 中的 CDATA 中发送标签。哪个没有在 XSD 中得到验证