我正在Eclipse中做一个Java项目。我使用了一些相对路径,例如:
File htmlTemplateFile = new File("src/templateGeno2Pheno.html");
而不是绝对路径:
File htmlTemplateFile = new File("/Users/.../Documents/workspace/SeqAnalysis/src/templateGeno2Pheno.html");
当我用Eclipse运行它时,一切都运行得很好,但是一旦我把它导出到一个可运行的JAR中并执行它,它就不能工作了。
这是我的文件夹结构:
下面是我的代码:
发布于 2018-06-06 23:18:57
在打包到JAR之后,所有内容,包括HTML模板,都被压缩到JAR中,因此文件系统路径对您不起作用。Java没有像您的浏览器/html那样的文件寻址系统。
一种选择是使用ClassLoader.getResourceAsStream
应用编程接口加载那些html模板。
将您的代码更改为:
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/templateGeno2Pheno.html");
String htmlString = IOUtils.toString(stream);
IOUtils来自Apache Commons IO库。
HTH
https://stackoverflow.com/questions/50723140
复制相似问题