Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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 文件未找到异常,仅当将代码作为maven依赖项包含时_Java_Maven - Fatal编程技术网

Java 文件未找到异常,仅当将代码作为maven依赖项包含时

Java 文件未找到异常,仅当将代码作为maven依赖项包含时,java,maven,Java,Maven,我编写了这个项目,在config/文件夹中有一堆配置文件,这些文件是运行所必需的: 在我的计算机和CI中的mvn测试中,代码运行良好 但是在打包它并将其作为maven依赖项添加到另一个项目之后,函数调用会给出错误消息 java.io.FileNotFoundException: config/file_properties.xml (No such file or directory) at java.io.FileInputStream.open0(Native Method

我编写了这个项目,在
config/
文件夹中有一堆配置文件,这些文件是运行所必需的:

在我的计算机和CI中的
mvn测试中,代码运行良好

但是在打包它并将其作为maven依赖项添加到另一个项目之后,函数调用会给出错误消息

java.io.FileNotFoundException: config/file_properties.xml (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at java.io.FileInputStream.<init>(FileInputStream.java:93)
        at net.didion.jwnl.TestDefaults.getInputStream(TestDefaults.java:63)
        at net.didion.jwnl.JWNL.initialize(JWNL.java:92)
java.io.FileNotFoundException:config/file\u properties.xml(没有这样的文件或目录)
位于java.io.FileInputStream.open0(本机方法)
在java.io.FileInputStream.open(FileInputStream.java:195)
位于java.io.FileInputStream。(FileInputStream.java:138)
位于java.io.FileInputStream。(FileInputStream.java:93)
位于net.didion.jwnl.TestDefaults.getInputStream(TestDefaults.java:63)
在net.didion.jwnl.jwnl.initialize处(jwnl.java:92)
知道我为什么会有这种奇怪的行为吗

更新: 提取jar文件后,结果发现配置文件不包含在jar中:

更新2:在添加建议之后?配置文件包含在jar文件中:


但是仍然会出现相同的错误:
config/file\u properties.xml(没有这样的文件或目录)

首先,验证配置文件是否实际打包到jar中。我会在存档查看器中查看它,或者将其解压缩,然后查看其中的内容

其次,不能使用标准的文件打开方法直接从jar加载文件。你必须使用类似于

Class.getResourceAsStream() 
有关更多建议,请参见此处:

首先,验证配置文件是否实际打包到jar中。我会在存档查看器中查看它,或者将其解压缩,然后查看其中的内容

其次,不能使用标准的文件打开方法直接从jar加载文件。你必须使用类似于

Class.getResourceAsStream() 
有关更多建议,请参见此处:

如果您的项目结构不是标准格式,则还需要更新pom.xml。如果需要包含构建的配置,则需要在构建部分添加该配置,如

参考链接


org.apache.maven.wagen
马车ssh
2.4
配置
**/**

如果您的项目结构不是标准格式,则还需要更新pom.xml。如果需要包含构建的配置,则需要在构建部分添加该配置,如

参考链接


org.apache.maven.wagen
马车ssh
2.4
配置
**/**

这一点很好。我这样做了,配置文件被附加到我的jar文件中;但是在阅读方面仍然存在问题(请参阅我添加到问题中的更新)。您还应该确保文件的路径是否正确,我无法构建您的项目,因此无法看到最终的jar是什么样子。但是,如果config文件夹与net/“root package”处于同一级别,则需要像“/config/file_properties.xml”这样引用,否则路径是相对于引用它的java类的。正斜杠使其成为绝对路径我实际上在问题中包含了一个提取的jar文件的屏幕截图(请参阅更新)。请检查相应的路径,然后指出正确的点。我这样做了,配置文件被附加到我的jar文件中;但是在阅读方面仍然存在问题(请参阅我添加到问题中的更新)。您还应该确保文件的路径是否正确,我无法构建您的项目,因此无法看到最终的jar是什么样子。但是,如果config文件夹与net/“root package”处于同一级别,则需要像“/config/file_properties.xml”这样引用,否则路径是相对于引用它的java类的。正斜杠使其成为绝对路径我实际上在问题中包含了一个提取的jar文件的屏幕截图(参见更新)。然后检查相应的路径