Intellij 模块作为依赖项包含在另一个模块中时无法访问资源

问题描述 投票:0回答:2

我有一个包含两个模块的 Intellij 项目。 第一个模块有 MyClass.java,它使用

getClass().getResourceAsStream("/name.jpg");

在其构造函数中加载一些资源

项目的目录结构为

myProject
   moduleA
      src
         main
            java (sources)
               mystuffA
                  MyClass.java
                  MyMainA.java
            resources (resources)
               name.jpg
   moduleB
      src
         main
            java (sources)
               mystuffB
                  MyMainB.java

在 MyMainA 中,我可以毫无问题地实例化 MyClass。当我尝试在 MyMainB.java 中实例化新的 MyClass 时,MyClass 在将 name.jpeg 作为资源加载时获得空指针。

我可以做什么来解决这个问题?

java intellij-idea classpath
2个回答
0
投票

我最终将所有 moduleA 打包到一个 jar 文件中,然后从 moduleB 引用该 jar 文件。它有效,但我不太喜欢它。


0
投票

如果模块之间有依赖关系(通过Maven或IntelliJ IDEA,没关系),并且有资源的文件夹被标记为资源,那么你可以使用以下路径访问另一个模块的资源:

"classpath*:name.jpg"

如果资源文件夹中有子文件夹,也必须在文件前指定。

© www.soinside.com 2019 - 2024. All rights reserved.