可能的重复:
如何从 Java jar 文件中读取资源文件?
经过几个小时的谷歌搜索后,我开始对此彻底疯狂。我还在网站上看到了该问题的各种变体,但似乎无法使其发挥作用。 JFrame 需要从 ini 文件读取数据,我创建了一个方法来打开该文件。该文件存储在 jar 文件内名为 resources 的文件夹中。
private BufferedReader openIniFile(String filename){
BufferedReader brReader = null;
try{
File fileObj = new File(this.getClass().getResource("/resources/" + filename).toURI()); // The fileobject of the file to read
if(fileObj.exists())
brReader = new BufferedReader(new FileReader(fileObj));
} catch(Exception e){
System.err.println("Exception while opening file: " + e.getMessage());
}
return null;
}
当我在编译后运行代码时,这当然可以完美工作,但在导出到 .jar 文件后会引发异常。我研究过使用 InputStream、FileInputStream 但似乎找不到可行的解决方案。
如何让jar文件识别资源?
当您的资源位于 JAR 文件中时,它就不再是文件了。文件只是文件系统上的物理文件。
解决办法:使用获取资源作为流。像这样的事情:
new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/resources/" + filename)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)