2012-04-17 116 views
4

我有一個名爲snake.html的html文件,我想將其放入jar中。當jar運行時,主類應該在瀏覽器中打開這個html文件。我曾嘗試:打開.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有兩個目錄,蛇和WebContent。 Snake有snake.class文件,WebContent有snake.html。

任何和所有幫助/批評讚賞。

回答

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

這就是我一直在尋找。非常感謝你 – shortspider 2012-04-17 17:45:44

0

嘗試加載snake.html文件是這樣的:

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

(HTML)..inside一個罐子。當jar運行時,主類應該在瀏覽器中打開這個html文件。

瀏覽器不是爲了在Java檔案中顯示HTML而設計的。 Java組件如JEditorPane可以。如果HTML在Swing組件中呈現給您滿意的狀態,請使用它。否則,將有必要

  1. 通過URL找到資源。
  2. 將其解壓到本地文件系統上的某個位置。
  3. 使用瀏覽器打開文件(最簡單的方法是使用Desktop.open(File))。