アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。

私は今、windows XP + eclipse 3.1.1(日本語化済)
でswingアプリケーションを作っています。
完成後は、実行可能jarファイルとして配布したいと考えています。

jarファイル内の画像ファイルを読み込んで、トグルボタンの
アイコンに使いたいので、メインクラス内で、

jToggleButton1.setIcon(new ImageIcon(getClass().getClassLoader().getResource("images/transition.jpg")));

という記述をしました。

「ファイル」→「エクスポート」→「jarファイル」
で、実行可能jarファイルを作ったときはちゃんと
画像が読み取れているのですが、

eclipseから直接実行をすると、以下のようなNullPointerException
が発生してしまいます。

java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at DTT.getJToggleButton1(DTT.java:261)
at DTT.getJPanel5(DTT.java:216)
at DTT.getJScrollPane(DTT.java:203)
at DTT.getJPanel(DTT.java:99)
at DTT.initialize(DTT.java:478)
at DTT.<init>(DTT.java:468)
at DTT.main(DTT.java:458)

(DTTという名前のアプリケーションなのです。。)

jarに出力する場合と、eclipseから直接実行する場合で
記述を変える必要があるのでしょうか?

それともデフォルト作業ディレクトリの指定などを適切に行えば
統一的に扱えるようになるのでしょうか?

なにとぞよろしくお願いします。

A 回答 (4件)

classファイルが見えませんがclassファイルはbinフォルダに作られる設定で宜しいでしょうか。


それならimagesフォルダをsrcフォルダ内に移動してください。再コンパイルすればbinフォルダ下にimagesフォルダがコピーされ、その環境で実行すれば上手くいくと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

やってみたのですが、よくわかりません。

結局、getResource()がnullを返した場合は
パスを直接指定するようにif文を付けました。

迅速な対応、ありがとうございました。

お礼日時:2005/11/24 21:54

#1です。


jarファイルをEclipseから利用しようとしたものと極介してしまいました、申し訳ない。
#2にあるrinkun氏の指摘や相対パスのたどり方、パス基点を再確認してみてください。

#あまりお力になれていませんね、すみません。 m(__)m

この回答への補足

なんどもありがとうございます。

>#あまりお力になれていませんね、すみません。 m(__)m

めっそうもございません。一緒に考えてくれる人がいるという
だけで恐れ多いことだと思います。。

補足日時:2005/11/22 11:45
    • good
    • 0

該当jpgファイルをJavaソースプログラムの対応位置に置いていますか。


置いておけばバイナリファイルでも同じ位置にコピーされていて読めると思いますけど。

この回答への補足

回答ありがとうございます。

パスはあっていると思うのですが、どこかの
設定がおかしいのかうまくいきません。

ほかにも足りない情報があるかと思います。

ご指摘、ご教授よろしくお願いします。

補足日時:2005/11/22 11:38
    • good
    • 0

おそらくプロジェクトのプロパティなどで参照先のjarファイルとして登録されていないのではないかと。


classpathの設定に問題のjarファイルを追加してあげれば実行できそう。

はずれていたら申し訳ない。

この回答への補足

えーっと、プロジェクトのプロパティで、ライブラリに
JARを追加するという意味でしょうか?

eclipseから直接実行するときは、jarファイルが生成
されていないので、指定しようがないと思うのですが。

すいません。意味がよくわかりません。

あまりeclipseに詳しくないもので。すみません。。

補足日時:2005/11/21 18:38
    • good
    • 0
この回答へのお礼

すばやい回答ありがとうございます。
(挨拶をわすれてしまいました。。すいません。。)
もうすこしがんばってみます。

お礼日時:2005/11/21 18:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!