使用ClassLoader #getResource(),我需要访问项目中存在的文件,而不是我当前代码所在的项目。怎么办呢?
我正在使用eclipse。
目录结构:
Root |-project1 | |-package | |-myResourceFile |-project2 |-package |-myCodeFile
我正在尝试使用myCodeFile.class.getClassLoader()。getResource(“../../ project1 / package / myResourceFile”)从myCodeFile获取myResourceFile,但它始终返回null。我不想将project1添加到project2的类路径中。虽然添加它也不起作用。
关于,
答案 0 :(得分:1)
尝试从其他项目中读取文件是一个坏主意,因为它会将您与该目录结构完全联系起来。您已经使用getResource()
而不是使用java.util.File
API完成了解耦项目的第一步,因此您也可以采用完整的方式。
在Eclipse中,您可以将其他项目添加到项目的构建路径(项目属性 - > Java构建路径 - >项目)。您现在应该能够阅读其他项目的文件。
答案 1 :(得分:1)
如果您使用的是maven,则可以将project1 / package指定为project2的pom.xml中的资源文件夹。您可以使用Classloader getResource方法获取资源
http://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html