【发布时间】:2018-03-19 21:18:39
【问题描述】:
我不知道该怎么办了。尝试从可运行的 .jar 文件执行我的程序时,我在尝试使用 getResourceAsStream() 读取我的 .properties 文件时收到 FileNotFoundException。
我使用 Maven 3.5.0 和 Java 8 Update 144,Eclipse Oxygen。 我还使用 maven-assembly-plugin 和 assembly descriptor jar-with-dependencies 来生成我的单个 .jar 文件。
属性文件位于 /src/main/resources(在 Eclipse 中),因为它是 Maven 的约定。然后 - 在构建 .jar 文件时 - 自动放入 .jar 文件的根目录中。
在 Eclipse 中运行程序时完美运行。我只是为 getResourceAsStream() 方法提供属性文件的名称,而不是其他斜杠 (/) 或任何内容。我查看了 .jar 文件,发现该文件直接位于 .jar 文件的根目录中。
为什么找不到 .properties 文件?我就是不明白。
2017 年 10 月 12 日更新
我发布了一个答案并认为它会起作用,但它似乎起作用了,因为我更改了版本字符串并附加了一个“-SNAPSHOT”,但从那时起,我的子模块没有得到更新。 我知道我只需要附加文字“-SNAPSHOT”,以便 Maven 重新编译我在 Eclipse 中更改的当前代码并将其放入我的 .jar 文件中。但事实并非如此。
Maven 开始让我很恼火。它应该像这样工作。现在到底出了什么问题?
顺便说一句,应该强制更新的“mvn clean -U package”也不会更新快照。我使用 maven 程序集插件。
【问题讨论】: