在Jar中读取资源文件

时间:2018-06-14 11:52:13

标签: java intellij-idea jar kotlin embedded-resource

我正在使用IntelliJ Idea并尝试从项目结构中的resources文件夹中读取json文件。我读了json文件并使用jackson返回内容。

return mapper.readValue(File("src/main/resources/file.json"), Map::class.java)

一旦我构建项目并制作一个jar,它就会抛出一个无法找到文件的错误。我在这看了一下,发现我应该使用ClassLoader从资源文件夹中读取文件。所以我现在这样做 -

mapper.readValue(File( ClassLoader.getSystemClassLoader().getResource("src/main/resources/file.json").toURI()), Map::class.java)

现在我得到一个NullPointerException。我现在有点迷失了。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

假设您的构建遵循默认约定,column1 = column2下的任何内容都将在类路径的 root 上可用,因此您只需将代码更改为:

src/main/resource