java - 打开 .JAR 文件中的 HTML 文件

标签 java html jar executable-jar

我有一个名为 snake.html 的 html 文件,我想将其放入一个 jar 中。当 jar 运行时,主类应该在浏览器中打开这个 html 文件。我试过:

public static void main(String[] args) throws IOException, URISyntaxException {
    URL url = Snake.class.getResource("/WebContent/snake.html");
    System.out.println(url);
    // relative to the class location
    Desktop.getDesktop().browse(url.toURI());
}

如果我只是运行这段代码,但当我将它(和 html 文件)打包时,我得到以下异常:

Exception in thread "main" java.io.IOException: Failed to mail or browse
       jar:file:/Users/~user~/Desktop/Snake%20v0.1.jar!/WebContent/snake.html. 
       Error code: -10814
at apple.awt.CDesktopPeer.lsOpen(CDesktopPeer.java:52)
at apple.awt.CDesktopPeer.browse(CDesktopPeer.java:45)
at java.awt.Desktop.browse(Desktop.java:368)
at snake.Snake.main(Snake.java:26)

我想知道我是否有类路径问题,或者我没有将 jar 正确定向到文件。这个 jar 有两个目录,snake 和 WebContent。 Snake 有 snake.class 文件,WebContent 有 snake.html。

感谢任何帮助/批评。

最佳答案

您必须先对文件进行 devompress。

类似于:

public static void main(String[] args) throws IOException, URISyntaxException {
    URL url = Snake.class.getResource("/WebContent/snake.html");


    File temp = File.createTempfile();
    temp.deleteOnExit();

    // Copy content 

    Desktop.getDesktop().browse(temp.getAbsolutePath());
}

关于java - 打开 .JAR 文件中的 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10185592/

相关文章:

java - 是否有已知的方法可以在 OOP 中使 API 参数签名动态化?

javascript - div::after with position:fixed 中断站点

javascript - 使用 HTMLtoJSON 将 HTML 表中的值返回为 JSON 格式

java - java中的ProcessBuilder不执行 'java -jar'命令

java - 如何在react中从服务器获取文件

Java - 指定要运行的IP

html - 在 html 中显示文本/代码比例的工具

java - 如何从 jar 文件创建 C 库?

android - 将已经开发的android项目[及其资源(xml、图像、布局)]作为.xyz文件直接用于另一个项目

java - 为什么Java中的java.lang.Thread类没有被设计者标记为final?