如何将外部文件夹添加到类路径?

时间:2015-04-01 15:31:41

标签: java maven

所以我有以下文件夹结构:

  • 项目
    • LIB (从此文件夹中运行jar)
    • 属性(要加载的属性文件位于此文件夹中)

我正在尝试通过X.class.getClassLoader()。getResource(“properties / fileName”)加载属性文件。这个方法在eclipse中工作,但是当我使用maven构建jar时,它找不到文件,给出了一个找不到文件的异常。

我怀疑该文件夹不在类路径中,因为如果我运行getClassLoader()。getResources(“”),属性文件夹永远不会出现。我在之前的问题上尝试了所有关于stackoverflow的建议,但到目前为止还没有。

我也试过运行java -cp和-classpath,但它仍然失败。

1 个答案:

答案 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>
相关问题