2016-03-31 20 views
0

画像/ txtファイル& xmlファイルを一度JARファイルにパッケージングする際に、非常によく似た質問が複数回尋ねられました。JARに保存されたJavaの読み込み用HTMLファイル

残念ながら私が読んでいないすべての事例と事柄は私の質問に答えていますので、ここではコードの切り捨てですが、Eclipseを使ってプロジェクトをパッケージ化しています。エクスポートが失敗すると、htmlファイルがロード/検索されません。

 // TODO - failed to open in file when running in JAR 
    File filename = new File(this.getClass().getResource("/resource-uk.html").getFile()); 

    try { 
     URL url = new URL("file:///"+filename); 
     html = new JEditorPane(url); 
     html.setEditable(false); 
     JScrollPane scrollPane = new JScrollPane(); 
     scrollPane.getViewport().add(html); 
     topPanel.add(scrollPane, BorderLayout.CENTER); 
     html.addHyperlinkListener(this); 
    } 
    catch(MalformedURLException e) 
    { 
     System.out.println("Malformed URL: " + e); 
    } 
    catch(IOException e) 
    { 
     System.out.println("IOException: " + e); 
    } 

答えて

-1

は、マニフェストファイルに

+0

ファイルがJARのルートに位置しています /resource-uk.htmlここ Matifest マニフェスト-バージョンである:1.0 Rsrcの-のClass-Path:./ クラスパス:。 Rsrcの-メインクラス:smallsimpleapps.com.MainLaunch メインクラス:org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader 自動的にほとんど働いていたEclipseの – gcclinux

0

をクラスパスにファイルを含むファイル/フォルダを含め、この行を削除:「ファイルのファイル名が=新しいファイル(this.getClass()のgetResource(」/リソース - 英国。 html ")。getFile());"

この

URLのURLを使用する=新しいURL(のgetClass()のgetResource( "/リソース-uk.html")はgetFile()。。);

""で書かれたパスは大文字と小文字が区別されるので、ファイル名を正しく確認してください。

+0

によって生成された ...私は、次の構文 URL url = this.getClass().getResource("/license-uk.html"); これを使用Eclipse内で再び動作しますが、JARをエクスポートすると、HTML形式ではなくプレーンなTXTとして開きます – gcclinux

0

以下のコードを修正しても問題は解決しました。また、実行時のjarにエクスポートするときにEclipseで生成されたJARに必要なライブラリを抽出する必要がありました。

try { 
     URL url = this.getClass().getResource("/license-uk.html"); 
     JEditorPane html = new JEditorPane(); 
     html.setPage(url); 
     html.setEditable(false); 
     JScrollPane scrollPane = new JScrollPane(); 
     scrollPane.getViewport().add(html); 
     topPanel.add(scrollPane, BorderLayout.CENTER); 
     html.addHyperlinkListener(this); 

    } 
関連する問題