2016-07-13 14 views
0

プロジェクトをRunnable Jarとしてエクスポートしようとしましたが、プロジェクトのパスから直接画像にアクセスしようとしていたため、リソースがロードされませんでした。例えば:私は、Eclipse自体からプロジェクトを実行しましたが、私は画像がjarファイルに含まれていなかったことに気づいたときにJava:リソース内の画像にアクセスできない

ImageIcon icon = new ImageIcon("resources/icon.png"); 

これが働くだろう。だから研究した後、私は、ソースフォルダを作成し、それらの中に画像/テキストファイルを入れ、次にそれらにアクセスするためにgetClass()。getResource()を使う必要があることを知りました。しかし、これを行うと、URLは常にnullとして返されます。

Test 
---src 

---resources 
    ---icon.png 

---config 
    ---file.ini 

そして、ここにicon.pngとにアクセスしようとすると、私にはNullPointerExceptionを与えているコードです:また

ImageIcon icon = getClass().getResource("/resources/icon.png"); 

参考のために、これは私のプロジェクトエクスプローラがどのように見えるか

です私も試しました:

ImageIcon icon = getClass().getClassLoader().getResource("resources/icon.png"); 

しかし、それはまた、NullPointerExc eption。私は多くのソリューションをオンラインでチェックしましたが、どれも私のために働くようには見えませんでした。 .iniファイルにもアクセスできる必要があることに注意してください。イメージ用にしか機能しないソリューションでは私の問題は完全に解決されません。どんな助けでも大変感謝します。

+0

、icon.pngはどこですか?あなたはあまりにも瓶の構造を投稿できますか? – alexbt

+0

リソースは/ srcの下のフォルダとして移動する必要があります。 – basic

+0

'' /icon.png ''を試してください。または、そのパスのjarファイルで7zip、WinZipなどで調べてください。先頭の '/'がなければ、パスはgetResourceを行うクラスのパッケージパスからの相対パスになります。 –

答えて

0

あなたの構造があることが必要である:

TEST 
    -SRC 
    -Resources 
     -icon.png 

あなたのコードは今ある方法は、画像がないですあなたのコードは、/ srcに/テストしていないリソース/リソースを参照しているので、jarファイルとしてパッケージ

+0

これは実際には私にとってはうまくいきませんでした。 srcの中にソースフォルダーを追加しようとすると、自動的に外に置かれます。カット/ペーストしようとするとパッケージに変わります。私はパッケージで試してみたが、まだNullPointerExceptionを出すように思えたが、Joopの答えが私のために働いた。 編集:気にしないで、もう一度コンパイルして作業を開始しましたか?ありがとう! – 0Calories

+0

追加するには:このソリューションを機能させるには、URLとして「/icon.png」を使用する必要がありました。 EDIT:これはEclipseでのみ動作することがわかりました。また、Runnable Jarとしてエクスポートしても機能しませんでした。しかし、Joopのソリューションを使用して、私のプロジェクトが設定された方法でエクスポートする前にも動作しました。 – 0Calories

関連する問題