在.JAR文件中打开HTML文件

时间:2012-04-17 05:28:13

标签: 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。

任何和所有帮助/批评都赞赏。

3 个答案:

答案 0 :(得分:6)

你必须先压缩文件。

类似的东西:

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

答案 1 :(得分:1)

  

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

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

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

答案 2 :(得分:0)

尝试加载snake.html文件,如下所示:

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