我有一个名为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。
任何和所有帮助/批评都赞赏。
答案 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组件内呈现令您满意,请使用它。否则就有必要
Desktop.open(File)
)。答案 2 :(得分:0)
尝试加载snake.html文件,如下所示:
ClassLoader.getSystemResource("/WebContent/snake.html");