【发布时间】:2018-11-24 04:45:15
【问题描述】:
我正在使用 IntelliJ Idea 并尝试从项目结构中的资源文件夹中读取 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。我现在有点失落。任何帮助都深表感谢。
【问题讨论】:
-
您无法将 jar 中的文件作为普通文本文件读取,如:stackoverflow.com/questions/20389255/…
-
什么是
mapper?是ObjectMapper吗? -
@AndrewThompson - 是的,它是一个 ObjectMapper。
标签: java intellij-idea jar kotlin embedded-resource