• ベストアンサー

画像ファイルをjarでアーカイブ化しても、表示されない。

質問です。 jarファイルを作成する際、gifファイルを取り込み ましたが、実行すると、結局、そのgifファイルを 用意しないと、表示されません。 コマンドラインからみると、確かに、gifファイルも 追加されているようなのですが。 jpgにしてみても、同じでした。 何が、だめなのでしょうか。お願いします。

noname#11927
noname#11927
  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんにちは。  普通にToolkitのgetImage(filename)でイメージを取得しようとすると、カレントディレクトリを探してしまうので、Jar化した時に見つからなくなってしまいます。  イメージを動的に読み込むのではなく、アプリケーションのリソースとして読み込むのなら、ClassクラスのgetResouceメソッドを使って、イメージの場所を特定したほうがよいようです。  これだと、そのクラスがある場所を探してくれるので、Jar化されていればJarの中を、されていなければカレントディレクトリを探してくれます。 URL url = this.getClass().getResource("Test.jpg"); Image image = Toolkit.getDefaultToolkit().getImage(url);  こんな感じです。

noname#11927
質問者

お礼

ありがとうございます。 なるほど、分かりました。

関連するQ&A

  • JARファイル・JARコマンドに関して

    JARファイル・JARコマンドに関しての質問です。 同じクラスファイルを使用して、2つのJARファイルを作成しました。 しかし、バイナリツールでファイルを比較したところ、バイナリデータの一致が取れませんでした。 下記に、例と質問を記載します。 ご存知の方がおりましたら、ご教授よろしくお願いします。 例: 1.jar cf C:\java\test\HelloWorld1.jar C:\java\test\HelloWorld.class (クラスファイルをHelloWorld1.jarというJARファイルを作成します。) 2.jar cf C:\java\test\HelloWorld2.jar C:\java\test\HelloWorld.class (クラスファイルをHelloWorld2.jarというJARファイルを作成します。) ※HelloWorld.classはhelloと表示されるだけの簡単プログラムです。 1で作成されたJARファイルと、2で作成されたJARファイルをバイナリで比較したところ一致しませんでした。 ■質問 1.JARコマンドはJARファイルを作成する際に何をしているのでしょうか? 2.同じクラスファイルでJARファイルを作成しているのに、バイナリデータに差がでるのはなぜでしょうか? JARファイル作成時に作成時間等をファイルに保持しているのでしょうか? (作成時間が違うため、JARファイルで差がでるのでは、と推測しています・・・・) いろいろ調べてみたのですが、良い情報が見つかりませんでした。 参考URLだけでも結構です。 ご存知の方がいましたら、ご教授よろしくお願いします。m(_ _)m

    • ベストアンサー
    • Java
  • jarコマンドによるアーカイブファイル作成

    Mac OSX 10.3.9での話ですが、Windowsでも同様の現象に陥ります。 以下のようにjarコマンドで、カレントディレクトリ下のファイルをアーカイブ化しようとしたのですが、固まっているのか、何も出てきません。何故でしょうか? % jar cvf t.jar * 個々のファイルを指定するとjarファイルが正しく生成されるのですが、 マニフェストファイル作成に時間がかかりすぎているのかなと思って、 % jar cvMf t.jar *  とやっても同様でした。tarコマンドは正しく動くことは確認しています。

  • Ecliplseでは動作するが、JARファイル実行時には動作しない

    Ecliplseでは動作するが、JARファイル実行時には動作しない WINDOWS(XP)環境にて、 JDK、ECLIPSE共に現在の最新のものを使用してゲームを作成しています。 (jdk1.6.0_21、Eclipse(Ver 3.6)) Eclipse上では実行すると正常に動作しますが、 File>EXPORT>JAVA>JAR fileを使用して、JARファイルを作成すると、 (エクスポート時のウィザード設定は全てデフォルト、 JARファイル保存先とmainクラスのみ指定) 作成したJARファイルは起動するだけで何も処理が始まりません。 (JARファイル自体は作成されるが、実行後フレームだけ表示される) エラーの切り分けなど、方法がわからないため、ここから先に進めないでいます。 例として何かエラーになりうる要素があるとすれば、御教授お願い致します。 また、フォルダ階層が下記のようになっている場合、 コマンドプロンプトからのjarファイル作成は どのようなコマンドになるのでしょうか。 御教授お願い致します。 /******************************************************************************* プロジェクトフォルダ    ?.settings        ?org.eclipse.jdt.core.prefs    ?bin        ?パッケージ名称              ?CLASSファイル、各材料(midi、wav、gif、png、jpg等)    ?src        ?パッケージ名称              ?JAVAファイル、各材料(midi、wav、gif、png、jpg等)    ?META-INF        ?.mfファイル    ?.classpathファイル    ?.projectファイル *******************************************************************************/

    • ベストアンサー
    • Java
  • 画像ファイル jar

    お世話になります。 javaクラス内で、画像ファイルを読み込んでいます。  File f = new File( "/usr/local/image/test.jpg" ); javaクラス郡をアーカイブし、jarファイルを作成するとき、 test.jpgの画像ファイルも含み、  File f = new File( "test.jpg" ); というように、実行パスに影響されずに画像ファイルを読み込みたいと考えています。 こういった事はできますでしょうか?どういう手順で行えばいいのでしょうか? IDEはEclipse3.2.0を使用しております。

    • ベストアンサー
    • Java
  • JARのパスの通し方

    実行可能なjarファイルを実行するさいに標準実行環境に含まれていない外部jarファイルが必要になる場合はどのようにその外部jarを指定するのでしょうか? 単純にCLASSPATHにそのjarのディレクトリかjarそのものを指定するだけだと思ったのですが、それだとNoClassDefFoundErrorが発生してしまいます。 実行前にコマンドプロンプト(WinXPです)でSETでやはりクラスパスに追加しても効果なしで… EclipseでClassファイルからそのJARをビルドパスに含めて実行する場合はちゃんと実行できています。 また、実行JARファイルに外部JARの中身を一緒に入れてJARを生成するとちゃんと実行できます。 よろしくお願いします。

    • ベストアンサー
    • Java
  • jarコマンドのソースは?

    コマンドラインでjarファイルを作成するときに、jarコマンドを使いますよね。jarコマンドのソースが公開されているって聞いたのですが、どこにあるのでしょうか?

    • ベストアンサー
    • Java
  • windows8でjarファイルを動かしたい

    Windows7で動かしていたjarファイルをWindows8で動かそうとしたところ、 起動しませんでした。 実行環境は以下です。 ・Windows8 (8.1にはしていません) ・java (Version 7 Update 51) コマンドプロンプトから「java –jar ファイル名.jar」でも起動せず、 環境変数のPATHに「C:\Program Files (x86)\Java\jre7\bin」を追加しましたが、 ダメでした。 何か良い方法を知っている方がいましたら教えて下さい。 どうぞ宜しくお願い致します。

  • Jarファイルについて

    Jarファイルについて質問があります。 XalanやXercesなどは、Jarファイルとして提供されていて、 classpathに通してJavaプログラム内で使用するわけですが、 実行の際Jarファイルは一度解凍されてから、JVM内に読み込まれるのでしょうか? JarファイルはZipと同様の圧縮形式だと認識してますので、 解凍してから実行されるのだろうと思ってます。 どなたかご教授願いますでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • jarファイルを実行した時のエラー

    外部のPCでjarファイルを作成し,自分のPCでそのファイルをダブルクリックしても反応がないため,コマンドでjava -jar ~.jar と実行してみたところ, Exception in thread"main" java.lang.NoClassDefFoundError: tover と表示されます. toverを調べてみましたが,さっぱりわかりません.教えてください,お願いします!

    • ベストアンサー
    • Java
  • 複数のJarファイルにクラスパスを通す方法

    eclipseで作成したJavaのプログラムをコマンドプロンプトで起動しようと考えています。 そこで分かわないことがあったので質問させていただきました。 分からないことというのは、現在プログラム直下のlibフォルダに20個近いJarファイルがありまして、メインのプログラムでは、それを参照して動いています。そのためlibフォルダ内のJarファイルにクラスパスを通したいと考えているのですが、コマンドラインに一つずつJarファイル名を書く以外に何か方法がありましたらご教授ください。 よろしくお願いいたします。

専門家に質問してみよう