2011-09-02 18 views
0

私はSwingアプリケーションを作成し、.jarファイルにhelp.pdfというファイルを含めます。ユーザがJMenuItemからHelp->User Guideを選択すると、ファイルをシステムのデフォルトのPDFビューアにロードする必要があります。.jarファイルからPDFを読み込む方法は?

私はそれがもはや機能し、他の人のための瓶にそれをパックするとき、これは、しかし、EclipseのIDEで動作

private void openHelp() { 
    try { 
     java.net.URL helpFile = getClass().getClassLoader().getResource("help.pdf"); 
     File pdfFile = new File(helpFile.getPath()); 
     if (pdfFile.exists()) { 

      if (Desktop.isDesktopSupported()) { 
       Desktop.getDesktop().open(pdfFile); 
      } else { 
       System.out.println("Awt Desktop is not supported!"); 
      } 

     } else { 
      System.out.println("File does not exist!"); 
     } 

     System.out.println("Done"); 

    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

} 

、PDFを読み込むためのコードを持っています。

この問題を解決するにはどうすればよいですか?

答えて

1

問題は、FileはJARファイルのコンポーネントに名前を付けることができないということです。あなたがする必要があるのは、JARファイルからファイルシステム内の一時ファイルにリソースをコピーし、一時ファイルとしてFileを使用してオープンすることです。

0

.jarファイルのファイル名では、大文字と小文字が区別されます。あなたの文章ではHelp.pdfと書くが、コードにはhelp.pdfを使う。ファイルシステムが大文字小文字を区別しないシステムを使用している場合でも、Javaコードの大文字/小文字はファイルの大文字と一致する必要があります。

ではなく

+0

私はちょうどファイル名を駄目にしました。それはhelp.pdf – jax

+0

です。それでは、「もう機能していません」ということをより正確にする必要があります。 –

0

は、私はあなたが、jarファイルの場所を取得、それを開いて、内からpdfファイルをロードする必要があると思います(あなたの投稿テキスト内のファイル名が正しいと仮定して)

getResource("Help.pdf"); 

を試してみてください、あなたの応用。 .jarファイルはちょうどzipアーカイブであり、javaで簡単に読むことができます。

+0

ここでは問題ありません。この状況に近づく正しい方法については、スティーブンCの答えを参照してください。 –

+1

ちょうどそれ自身を学んだ:) – Tobson

関連する問題