Java资源文件路径问题
这是昨天在 Java 的资源文件读取方面遇到的坑
先说结论
如果在项目中使用资源文件, 那么用Class :: getResourceAsStream(String) : InputStream
方法来获取文件内容
再说原因
项目的资源文件, 与在IDE运行中相比, 导出成jar文件后, 所在的路径会发生变化
如果直接用Files :: newInputStream(Paths.get(String path))
的方法来获取资源文件内容, 导出成jar文件后会因为路径不同而读取不到
如果使用Class :: getResource(String) : URL
方法获取URL后再通过URL :: getPath() : String
方法来获取路径, 一样行不通
范例
一个项目文件树
1 | |- src |
不合理代码
1 | Properties props = new Properties(); |
更改后
1 | Properties props = new Properties(); |
感谢
- Morgen_L
- sand