首页 > 解决方案 > 无法从包中加载资源

问题描述

我有一个问题似乎非常基本和简单,但我无法解决它,即使我在互联网上进行了调查。由于我相信我遇到了一个角落并且无法找到出路,所以我将在这里陈述我的非常简单的问题。

给定:一个 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

我知道这是一个非常基本的问题,但是:为什么会这样?对我来说,这看起来是一个相当简单的编程任务。我在这里想念什么?

标签: javajava-modulejava-11java-platform-module-system

解决方案


--patch-module LoadResource=build/resources/main我可以通过在 IntelliJ 中添加为 VM args 来解决我的问题。


推荐阅读