Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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_Maven - Fatal编程技术网

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

Java 如何将外部文件夹添加到类路径?,java,maven,Java,Maven,因此,我有以下文件夹结构: 项目 解放党 正在从该文件夹运行jar 要加载的属性文件在此文件夹中 我试图通过X.class.getClassLoader.getResourceproperties/fileName加载属性文件。此方法在eclipse中工作,但当我使用maven构建jar时,它无法找到文件,从而导致出现“未找到文件”异常 我怀疑该文件夹不在类路径中,因为如果运行getClassLoader.getResources,属性文件夹将永远不会显示。我尝试了前面问题中关于stackove

因此,我有以下文件夹结构:

项目 解放党 正在从该文件夹运行jar 要加载的属性文件在此文件夹中 我试图通过X.class.getClassLoader.getResourceproperties/fileName加载属性文件。此方法在eclipse中工作,但当我使用maven构建jar时,它无法找到文件,从而导致出现“未找到文件”异常

我怀疑该文件夹不在类路径中,因为如果运行getClassLoader.getResources,属性文件夹将永远不会显示。我尝试了前面问题中关于stackoverflow的所有建议,但到目前为止没有一个有效


我还尝试运行java-cp和-classpath,但仍然失败。

在使用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>

当我尝试您建议的方法时,getClassLoader.getResources会找到一个URL,但当它被传递到FileInputStream构造函数时,我会得到一个file not found异常。我希望我可以使用Thread.currentThread.getContextClassLoader,但是我被遗留代码困住了……我想你的类加载器没有看到文件。没有办法改变类加载器吗?它可以帮你解决这个问题。。。无论如何,我会花一些时间检查一个解决方法。类加载器永远不会看到文件,因为无论我做什么,它都不在类路径上。我希望我能改变类加载器,但我不能。我做了一项工作,不再使用类加载器,所以它现在是固定的。谢谢你的帮助,没必要浪费你的时间。