【问题标题】:Open an HTML File Inside a .JAR File在 .JAR 文件中打开 HTML 文件
【发布时间】:2012-04-28 11:02:07
【问题描述】:

我有一个名为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。

感谢所有帮助/批评。

【问题讨论】:

    标签: java html jar executable-jar


    【解决方案1】:

    你必须先解压文件。

    类似:

    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());
    }
    

    【讨论】:

    • 这就是我要找的。非常感谢
    【解决方案2】:

    (HTML) ..在一个罐子里。当 jar 运行时,主类应该在浏览器中打开这个 html 文件。

    浏览器不是为在 Java 档案中显示 HTML 而设计的。像JEditorPane 这样的Java 组件可以。如果 HTML 在 Swing 组件中呈现让您满意,请使用它。否则需要

    1. 通过 URL 定位资源。
    2. 将其解压缩到本地文件系统上的某个位置。
    3. 使用浏览器打开文件(最简单的方法是使用Desktop.open(File))。

    【讨论】:

      【解决方案3】:

      尝试像这样加载snake.html文件:

      ClassLoader.getSystemResource("/WebContent/snake.html");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-04
        • 2012-01-01
        • 2012-10-04
        • 2014-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多