所以我有以下文件夹结构:
我正在尝试通过X.class.getClassLoader()。getResource(“properties / fileName”)加载属性文件。这个方法在eclipse中工作,但是当我使用maven构建jar时,它找不到文件,给出了一个找不到文件的异常。
我怀疑该文件夹不在类路径中,因为如果我运行getClassLoader()。getResources(“”),属性文件夹永远不会出现。我在之前的问题上尝试了所有关于stackoverflow的建议,但到目前为止还没有。
我也试过运行java -cp和-classpath,但它仍然失败。
答案 0 :(得分:0)
使用Maven时,*.properties
等文件和任何其他无法编译的文件必须位于src/main/resources
文件夹,默认情况下可用。
此外,我建议您使用Thread.currentThread().getContextClassLoader()
来获取正确的类加载器,以便加载资源。
无论如何,如果您想在classpath中拥有自定义文件夹,我建议您在pom.xml
添加资源,如下所示:
<project>
...
<build>
...
<resources>
<resource>
<!-- The folder you want to be a resource (from project root folder), like: project/properties -->
<directory>properties</directory>
<!-- Filtering if Maven should post-process text files to find and replace ${key} params: in most cases, leave it false -->
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>