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文件的屏幕截图(参见更新)。然后检查相应的路径