Java 共享资源存储到错误路径

Java Shared Resources stored to wrong path

我有两个项目共享一个公共资源文件夹。我使用此命令访问这些文件:

getClass().getClassLoader().getResource("myResources.xml")

此语句return是一条路径,该路径无效。事实上它 returns:

project/shared-resources/target/classes/myResource.xml

但应该return

project/shared-resources/src/main/resource/myResource.xml

在构建过程中,所有资源都被复制到此 target/classes 路径,因此我能够加载这些文件,但更改被覆盖,这是不需要的。

知道为什么会这样吗?

使用 getClass().getClassLoader() 将从您的 class 路径加载资源。

project/shared-resources/src/main/

以上是您的源路径 - 没有 class 个文件。

当您编译和 运行 您的应用程序时,classes 被编译到(并从中加载):

project/shared-resources/target/classes/

在您的 IDE 中(假设您正在使用一个),将资源(您的 resource/myResource.xml 文件)添加到构建过程中通常很简单,以便将其复制到目标中相同的结构。

如果/当您部署/分发您的应用程序时,您需要这样做,因为 src 路径通常不会包含在您的 jar、ear 或 war 文件等中。