Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存储到错误路径的Java共享资源_Java_Resources - Fatal编程技术网

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

存储到错误路径的Java共享资源,java,resources,Java,Resources,我有两个项目共享一个公共资源文件夹。我使用此命令访问这些文件: getClass().getClassLoader().getResource("myResources.xml") 此语句返回的路径无效。事实上,它返回: 项目/共享资源/目标/类/myResource.xml 但它应该会回来 project/shared resources/src/main/resource/myResource.xml 在构建过程中,所有资源都复制到此目标/类路径,因此我可以加载这些文件,但更改的内容会被覆

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

getClass().getClassLoader().getResource("myResources.xml")
此语句返回的路径无效。事实上,它返回:

项目/共享资源/目标/类/myResource.xml

但它应该会回来

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

在构建过程中,所有资源都复制到此目标/类路径,因此我可以加载这些文件,但更改的内容会被覆盖,这是不需要的

知道为什么会发生这种情况吗?

使用
getClass()。getClassLoader()
将从类路径加载资源

项目/共享资源/src/main/

上面是您的源路径-没有类文件

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

项目/共享资源/目标/类/

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


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

请澄清更改的内容会被覆盖。此外,您必须开始区分源文件夹/文件与编译的文件和资源。@SotiriosDelimanolis如果我更改加载的资源的内容,下一个生成过程将只覆盖project/shared resources/target/classes/myResource.xml中的文件,其中的once-in-project/shared resources/src/main/resource/myResource.xml文件不是要写入的。我如何访问源路径?它不是生成的应用程序的一部分,因此,您要么选择从文件系统加载它(而不是作为相对类路径资源),要么将其包含在构建中(并且让一个项目将另一个项目作为库依赖项)。