在jar中找不到资源文件,但在Winrar中打开时存在

时间:2018-10-13 14:37:27

标签: java

我想在我的Java应用程序中使用gradle读取json文件。当我在Intellij中运行应用程序并gradle运行时,它运行良好,但是当我进行gradle dist并运行该jar时,它将抛出FileNotFound。如果我用winrar打开jar,我会在正确的目录中看到文件。

我已经尝试过以所有可以找到的方式获取文件,其中一些是

new FileReader("data/user-data.json");
new FileReader(new File(getClass().getResource("data/user-data.json").getFile()));
new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("data/user-data.json")));

还有很多。

有人可以帮助我吗?让我知道您是否需要更多信息。

1 个答案:

答案 0 :(得分:0)

您忘记在资源路径中添加“ /”:

getResourceAsStream("/data/user-data.json")

您的罐子应该看起来像这样:

root (*.jar)
 |-- data
      |-- user-data.json