我在JAR文件的pages/newTab.html下的目录下有一个HTML文件,在Eclipse中,它显然位于res/pages/newTab.html中。我在这里的目标是读取整个HTML文件的内容并将其存储在一个字符串中。
我尝试了多种方法来获取文件作为资源,然后使用BufferedReader读取它,它在Eclipse中有效,但在可运行的JAR中不起作用。这通常是我将文件作为资源获取的方式,这在Eclipse中有效,但在可运行的JAR中不起作用。
getClass().getResource("/pages/" + url.substring(7))
这是我到目前为止所拥有的。
File file = new File(getClass().getResource("/pages/" + url.substring(7)).toURI());
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
stringBuffer.append("\n");
}
fileReader.close();
jep.setContentType("text/html");
jep.setText(stringBuffer.toString());
jep是要将文本打印到的JEditorPane。
编辑:在使用File file = new File(getClass().getResource("/pages/" + url.substring(7)).toURI());
运行Runnable JAR时,我得到了一个java.lang.IllegalArgumentException: URI is not hierarchical
发布于 2018-06-25 00:35:03
将html保存在jar之外,这就是您可以对配置文件和其他类似内容执行的操作。为应用程序创建一个文件夹,并在其中存储可执行文件jar和html。
- application\
------- executable.jar
------- htmlFile.html
现在这样做:
try {
List<String> lines = new ArrayList<>(Files.readAllLines(Paths.get("htmlFile.html"))));
String content = "";
for (String line : lines) {
content += line + "\n";
}
jep.setContentType("text/html");
jep.setText(content);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
https://stackoverflow.com/questions/51010825
复制相似问题