2010-12-14 15 views
0

jarファイルにリソースとしてパッケージ化されたドキュメントのファイルパスを取得して、スイングアプリケーションで表示できるようにしようとしています。私はそれが今食べ物を実行するときに動作するようになっていますが、実行可能なjarファイルにエクスポートすると、jarファイルにパッケージされているドキュメントにアクセスできなくなります。 jarファイルの中でドキュメントのファイルパスを取得するにはどうすればよいですか?ここでjarファイルにパッケージ化されたドキュメントへのアクセス

は、私は、ドキュメントにアクセスしようとしています方法を示したコードの行です:

File document = new File(getClass().getResource("/resources/documents/document.pdf").getPath()); 
+0

'document.pdf 'がその場所のjarファイル内にあることを確認しましたか? – khachik

+0

はいあります。ファイルの代わりにURLを使用するように修正しました。 – MBU

答えて

3

JARファイル内の何かのために存在する「ファイルパス」の唯一の種類は、ルートからの相対パスです。 JARのしかし、あなたのケースでは、すでに知っているようです( "/resources/documents/document.pdf")。 JARファイル内のファイルには、実際のファイルシステム内に存在しないため直接アクセスするためのパスがありません。それらにアクセスするには、getResource()またはgetResourceAsStream()のいずれかを使用する必要があります。 Swingではどのクラスが画像用に使用されているのか覚えていませんが、ファイルパスの代わりにInputStreamやURLなどを受け入れるメソッドをオーバーロードする必要があります。

+0

私はgetResourceAsStream()を使用しました。ありがとう! – MBU

関連する問題