2016-05-28 9 views
0

私はスイングアプリケーションを書いていますが、Eclipseではうまく動作しますが、アプリケーションの実行可能なjarファイルとしてエクスポートすると、例えばライン。Eclipse内の実行可能なjarパッケージ内の画像を使用できません...時々

logo = getClass().getResource("/com/cogentautomation/logo.jpg").getPath(); 

日食がcom.cogentautomationパッケージ内の画像をパッケージ化されており、私は、私は両方のエクスポート方法を試してみました.jar自身でそれを見ることができ、抽出に必要なライブラリとパッケージ必要なライブラリ、1氏は述べています。

FileNotFoundException com\cogentautomation\logo.jpg 

もう1つは、

FileNotFoundException file:\c:\documents\hs.jar!\com\cogentautomation\logo.jpg 

しかし私はそれが日食inおよびJavaリソースではありませんディスク上にある他の画像で動作します、このエラーが発生しているところである、PDFファイルを解析するためのライブラリを使用しています。

私はこの問題に関する他の話題を読んだことがありますが、本当に助けにはならなかったものはありません。

EDIT:コメント内の何かに対処するには、String変数を使用する必要があります。使用するライブラリには、画像を読み取るための文字列入力が必要です。私はImage.get(String)このURLのために基づいて、仕事に行くのではありませんFile

のコンストラクタのパラメータとしてStringを使用してImage.get(File)への呼び出しを転送している「推測」org.pdfclown.documents.contents.entities.ImageのJavadocに基づいて

import org.pdfclown.documents.contents.entities.Image; 

Image image = Image.get(logo); 
+0

に渡すことができるbyte[]を与えることができますByteArrayOutputStreamにこれを書くことができ、あなたはパッケージ定義外のプロジェクトのためのリソースを格納します。 mavenプロジェクトでは、例えば 'src/main/java'はコードで、' src/main/resources'はあなたの資産です –

+0

@ cricket_007私はmavenを使用しません。 – psycotik

+1

「getPath」を使用せず、代わりに「getResource」から返されたURLを使用してください – MadProgrammer

答えて

1

パス。代わりに、あなたは(これらのAPIは、単にすでに利用可能だものを使用することはできません理由:P)Image.get(IInputStream)に目を向ける必要がある

だから、APIを掘りIInputStreamいくつかのより多くのorg.pdfclown.bytes.Buffer、完璧ではないにつながり、それがリンクです。

あなたはClass#getStreamAsResourceを使用して、あなたが、その後通常Image.get(IInputStream)

関連する問題