嗨,我正在开发一个小的java应用程序(对这个有点陌生),它接收一个输入文件并给出一个网页。这里的html模板和网页的图像文件位于资源文件夹中。
下面是我在代码中访问html模板文件的方式(我需要以字符串的形式读取html模板)
{
String htmlString;
ClassLoader classLoader = getClass().getClassLoader();
URL fileurl = classLoader.getResource("template.html");
htmlString = String.join("\n", Files.readAllLines(Paths.get(fileurl.toURI())));
}
当从eclipse运行时,代码可以正常工作,但当我将其作为jar运行时,代码会失败。(java.nio.file.nosuchfileexception:)请帮助我从resources文件夹访问模板文件,并注意html从同一文件夹获取图像。现在,模板和图像文件必须打包,并且应该能够作为单个jar运行。
更新:用7-zip解压jar文件以查看内容。我可以看到参考资料中的文件在jar中可用
谢谢!
1条答案
按热度按时间6xfqseft1#
您已经将所有内容打包到jar中,因此资源的路径名不再是文件的有效路径。如果您添加这个日志,您将看到jar条目的路径是这样的
jar:file:/C:/path/to/your.jar!/template.html
无法打开的Files.readAllLines
:解决方案很简单,只需将资源定位为
InputStream
必须在类路径上:如果
res
在分解目录中运行代码时,目录是类路径的一部分,如果“res”的内容在jar文件中,则在jar文件中工作。