5

瓶の中に入れたいsnake.htmlという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ファイル)をjarすると、次の例外が発生します。

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の2つのディレクトリがあります。Snakeにはsnake.classファイルがあり、WebContentにはsnake.htmlがあります。

ありとあらゆる助け/批評に感謝します。

4

3 に答える 3

8

You'll have to devompress the file first.

Something like:

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());
}
于 2012-04-17T09:43:19.013 に答える
1

(HTML)..瓶の中。jarが実行されると、メインクラスはこのhtmlファイルをブラウザで開く必要があります。

ブラウザは、Javaアーカイブ内にHTMLを表示するようには設計されていません。缶のようなJavaコンポーネントJEditorPane。HTMLがSwingコンポーネント内で満足のいくようにレンダリングされる場合は、それを使用します。それ以外の場合は、

  1. URLでリソースを見つけます。
  2. ローカルファイルシステム上の場所に解凍します。
  3. ブラウザを使用してファイルを開きます(最も簡単な方法はを使用することですDesktop.open(File))。
于 2012-04-17T08:16:41.633 に答える
0

次のようにsnake.htmlファイルをロードしてみてください。

ClassLoader.getSystemResource("/WebContent/snake.html");
于 2012-04-17T05:50:17.810 に答える