Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取jar中HTML文件的所有内容并将其存储在字符串中_Java_Executable Jar - Fatal编程技术网

Java 如何读取jar中HTML文件的所有内容并将其存储在字符串中

Java 如何读取jar中HTML文件的所有内容并将其存储在字符串中,java,executable-jar,Java,Executable Jar,我在JAR文件的pages/newTab.HTML目录下有一个HTML文件,在Eclipse中它显然位于res/pages/newTab.HTML目录下。我的目标是读取整个HTML文件的内容并将其存储在字符串中 我尝试了多种方法将文件作为资源获取,然后使用BufferedReader读取它,它在Eclipse中工作,但在Runnable JAR中不工作。这通常是我获取文件作为资源的方式,这在Eclipse中有效,但在Runnable JAR中不起作用 getClass().getResource

我在JAR文件的pages/newTab.HTML目录下有一个HTML文件,在Eclipse中它显然位于res/pages/newTab.HTML目录下。我的目标是读取整个HTML文件的内容并将其存储在字符串中

我尝试了多种方法将文件作为资源获取,然后使用BufferedReader读取它,它在Eclipse中工作,但在Runnable JAR中不工作。这通常是我获取文件作为资源的方式,这在Eclipse中有效,但在Runnable 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());
杰普是我们要打印文本的绝地武士窗格


编辑:当使用
File File=new File(getClass().getResource(“/pages/”+url.substring(7)).toURI()运行可运行JAR时,我确实会得到一个
java.lang.IllegalArgumentException:URI不是分层的

将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();
    }
试试看{
列表行=新的ArrayList(Files.readAllLines(path.get(“htmlFile.html”));
字符串内容=”;
用于(字符串行:行){
内容+=行+“\n”;
}
setContentType(“text/html”);
jep.setText(内容);
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}

您是否收到错误?您是否尝试过调试或打印以检查
getClass().getResource(“/pages/”+url.substring(7)).toURI()的值?
?是的,它打印HTML文件的位置。因此它具有正确的路径,但如果没有任何错误就无法读取文件?它在Eclipse中工作正常,正如预期的那样,但是导出时在可运行的JAR中不起作用。是的,您已经在问题中写了这一点,我关于打印的问题以及运行导出的JAR时出现的任何错误。