Java初心者のためのイメージの読み込みエラー

このQ&Aのポイント
  • java.lang.IllegalArgumentException: input == null! というエラーが発生しました。ソースコードで指定した16_16.pngが見つからないようです。
  • 16_16.pngはプロジェクト直下に存在しているはずですが、エラーメッセージによるとinput == nullということです。
  • 数ヶ月前まではエラーは出ていなかったので、何か変更があった可能性があります。
回答を見る
  • ベストアンサー

javaの初歩的な質問です

以下のソースコードをかきました Image image = ImageIO.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("16_16.png")); すると以下のエラーがでてきました Exception in thread "main" java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(Unknown Source) at Task.<init>(Task.java:23) at Task.main(Task.java:16) 16_16.png が見つからないというメッセージでしょうか? しかし16_16.pngはエクリプス上ではプロジェクト直下に入っているようにみえます。 数ヶ月前まではエラーなどは出てなかったと思うのですが。

  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1619/5654)
回答No.1

>しかし16_16.pngはエクリプス上ではプロジェクト直下に入っているようにみえます。 プロジェクト直下にあるかどうかではなく、Thread.currentThread().getContextClassLoader()で得られるクラスローダーでロードできるパス上にあるかどうかを気にしてください。

nakisan2011_12
質問者

お礼

画像の配置を変えたところ、うまくいきました。ありがとうございました!

関連するQ&A

  • 「javaに関して」エラーが解決できません。java.io.IOException: Bad file descriptor

    インターネットを通して、たくさんのファイルを保存した場合、下記のようなエラーが出ます。 何か、解決手段はないでしょうか? ネットや本をいろいろ見たのですがまったくわかりませんでした。わかる方、ぜひとも、よろしくお願いいたします。 また、こういったエラーが出た場合、自分の力で解く方法を教えていただければ幸いです。 ーーーーエラーーーーーー java.io.IOException: Bad file descriptor at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(Unknown Source) at sun.nio.cs.StreamDecoder$ConverterSD.implRead(Unknown Source) at sun.nio.cs.StreamDecoder.read(Unknown Source) at java.io.InputStreamReader.read(Unknown Source) at java.io.BufferedReader.fill(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at test.main(test.java:14) Exception in thread "main"

    • ベストアンサー
    • Java
  • コマンドプロンプトのエラーについて

    コマンドプロンプトを実行すると以下のようなエラー文が出ました。 Exception in thread "main" java.lang.IllegalArgumentException: cannot add to lay out: unknown constraint: Canter at java.awt.BorderLayout.addLayoutComponent(Unknown Source) at java.awt.BorderLayout.addLayoutComponent(Unknown Source) at javax.swing.JRootPane$1.addLayoutComponent(Unknown Source) at java.awt.Container.addImpl(Unknown Source) at java.awt.Container.add(Unknown Source) at calendar.<init>(calendar.java:49) at calendar.main(calendar.java:78) 本などで、自分なりに調べたのですが解決できずに困っています。 原因が分かる方、いらっしゃいましたらご回答いただけますか?

  • Java アルゴリズム web上のソースコードで

    こんにちは。 趣味でプログラミングをしているものです。 定番のアルゴリズムについてみているうちに、下記のような サイトを見つけたのですが、 http://www-ui.is.s.u-tokyo.ac.jp/~takeo/book/algorithm/index.html まず、上記のサイトから ( パッケージ全体のダウンロードはこちら ) のリンクから、 お手数ですが、ソースコードをダウンロードしていただきたいのですが、 「 complete 」のフォルダーの 「 dijkstra 」のMain.javaを見ていて、 いくつかわからないことがありましたので、質問させていただきます。 (1) 194行めからのメソッド set_random_costs() 内において、 最後のほうで、repaint() をコールしていますが、 これは、どのクラスの repaint() なのでしょうか。 (2) コマンドプロンプトから起動すると 「 Appletを継承したMainのインスタンス 」を「JFrameクラスのインスタンス」にaddして 表示されるようでしたので、 コマンドプロンプトから 「java Main」としてみたのですが、 Exception in thread "main" java.lang.NullPointerException at Main.get_graph_image( Main.java:139 ) at Main.set_random_costs( Main.java:211 ) at Main.init( Main.java:76 ) at Main.main( Main.java:25 ) というエラー表示がされてしまいました。 ソースコードをどのようにか、修正しなければならないのでしょうか? 以上、初歩的な質問かもしれませんが、 どなたか教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaでのエラーについて

    Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '.' at java.util.Formatter.checkText(Unknown Source) at java.util.Formatter.parse(Unknown Source) at java.util.Formatter.format(Unknown Source) at java.io.PrintStream.format(Unknown Source) at java.io.PrintStream.printf(Unknown Source) at ShininginSpace.main(ShininginSpace.java:33) と出てきたのですが、これはどういう意味ですか?

    • ベストアンサー
    • Java
  • javaに詳しい方に質問です

    javaに詳しい方に質問です 私が使っているパソコンはwindowXPで今BG.java , BG.html の2つのファイルがあります ブロック崩しのソースです コマンドプロンプト上で下記のように操作をしたら、(画面の貼り方がわからなく申し訳ありません) C:\j2sdk1.4.2_05\bin>javac BG.java C:\j2sdk1.4.2_05\bin>appletviewer BG.html Exception in thread "main" java.util.MissingResourceException: Can't find resour ce for bundle sun.applet.resources.MsgAppletViewer, key appletpanel.badattribute .exception at java.util.ResourceBundle.getObject(ResourceBundle.java:314) at java.util.ResourceBundle.getObject(ResourceBundle.java:311) at java.util.ResourceBundle.getString(ResourceBundle.java:274) at sun.applet.AppletMessageHandler.getMessage(AppletMessageHandler.java: 39) at sun.applet.AppletPanel.showAppletStatus(AppletPanel.java:755) at sun.applet.AppletPanel.init(AppletPanel.java:190) at sun.applet.AppletViewer.<init>(AppletViewer.java:177) at sun.applet.StdAppletViewerFactory.createAppletViewer(AppletViewer.jav a:82) at sun.applet.AppletViewer.parse(AppletViewer.java:1122) at sun.applet.AppletViewer.parse(AppletViewer.java:1056) at sun.applet.Main.run(Main.java:138) at sun.applet.Main.main(Main.java:80) というなんだかよくわからない表示がされて実行がされませんでした 本当ならプログラムを張り付けたかったのですが、文字数に制限があるし ダウンロード先を忘れてしまいまして… ということなので詳しいことは構わないので、この表示が何を表しているのか ご回答お願いします

    • ベストアンサー
    • Java
  • javaの実行時のエラー

    javaを使って圧縮プログラムを作ったのですがコンパイルは通るのに実行時に Exception in thread "main"java.lang.StringIndexOutOfBoundsException: String index out of range: 80 at java.lang.String.charAt(String.java:455) at ashuku.char1(ashuku.java:51) at ashuku.kensa1(ashuku.java:23) at ashuku.main(ashuku.java:9) というエラーが出ます。このエラーの意味は何なのですか?教えてください。プログラムが長くて載せられないので、このエラーが出たときに何をチェックすればいいか教えてもらえると助かります。お願いします

    • ベストアンサー
    • Java
  • 初歩の初歩で躓いてしまいました。

    C:\java\Samples\D1>javac SampleD1L3.java C:\java\Samples\D1>java SampleD1L3 Exception in thread "main" java.lang.NoClassDefFoundError: SampleD1L3 Caused By:java.long.ClassNotFoundException: sampleD1L3 at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) 上記のような表示がでます。 環境変数は JAVA_HOME:C:\Program Files\Java\jdk1.5.0 PATH:%JAVA_HOME%\bin CLASSPATH:%JAVA_HOME%\lib\tools.jar 上記のように設定しました。 もしお気づきの点等ございましたら、ご教授の程よろしくお願い致します。

  • javax.sound.sampledに関して

    こんにちは いつもお世話になっております。 今回もよろしくお願いします。 私は下記のサイトのソースを実行しました。 http://ohwhsmm7.blog28.fc2.com/blog-entry-22.html すると、下記のエラーが発生しました。 【今回の質問】 このエラーの回避方法 そして、回避した状態での音声入出力の方法を教えて下さい。 【エラー】 Exception in thread "main" java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian is supported. at javax.sound.sampled.AudioSystem.getLine(Unknown Source) at Player.<init>(Player.java:35) at Voice.main(Voice.java:5) 【エラー発生箇所】 Playerjava:35 source = (SourceDataLine)AudioSystem.getLine( info ); Voice.java:5 Player m_CPlay = new Player(); 【実行環境】 ・Windows7 ・eclipse luna 【インストールしているJava関係のソフト】 ・Java 7 Update67 ・Java 8 Update 11(64-bit) ・Java SE Development Kit 7 Update 55(64-bit) ・Java SE Development Kit 8 Update 11(64-bit) それではよろしくお願いします。(m´・ω・`)m

    • ベストアンサー
    • Java
  • javaがうまく起動しない?

    javaを利用して株チャートを映している、カブドットコム証券を利用しています。 javaが画面上で立ち上がるのですが、その後、画面が空白になり「エラー。クリックして詳細を確認してください」とでてしまいます。 最新版のjavaをダウンロードしなおしてみたのですが、やはり駄目です。 エラー表示には Java Plug-in 1.6.0_12 使用中の JRE のバージョン 1.6.0_12 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Documents and Settings\USER ---------------------------------------------------- c: コンソールウィンドウをクリア f: ファイナライズキューのオブジェクトをファイナライズ g: ガベージコレクト h: このヘルプメッセージを表示 l: クラスローダリストをダンプ m: メモリ使用率を表示 o: トリガログ q: コンソールを非表示 r: ポリシー設定を再ロード s: システムプロパティと配備プロパティをダンプ t: スレッドリストをダンプ v: スレッドスタックをダンプ x: クラスローダキャッシュをクリア 0-5: トレースレベルを <n> に設定 ---------------------------------------------------- ロードされたイメージ: jar:http://kabucom.qri.jp/new_chart/kabucom/qrchartsim.jar!/logo/QRlogos2.gif ロードされたイメージ: jar:http://kabucom.qri.jp/new_chart/kabucom/qrchartsim.jar!/icons/sliderM.gif ロードされたイメージ: jar:http://kabucom.qri.jp/new_chart/kabucom/qrchartsim.jar!/icons/kai.gif ロードされたイメージ: jar:http://kabucom.qri.jp/new_chart/kabucom/qrchartsim.jar!/icons/uri.gif ロードされたイメージ: jar:http://kabucom.qri.jp/new_chart/kabucom/qrchartsim.jar!/icons/q.gif ロードされたイメージ: jar:http://kabucom.qri.jp/new_chart/kabucom/qrchartsim.jar!/icons/sin.gif ロードされたイメージ: jar:http://kabucom.qri.jp/new_chart/kabucom/qrchartsim.jar!/icons/hen.gif ロードされたイメージ: jar:http://kabucom.qri.jp/new_chart/kabucom/qrchartsim.jar!/icons/karute.gif Applet Version : 0.0245 java.lang.NullPointerException at model.Cycle.getDate(Cycle.java:609) at gui.DatePanel.getDate(DatePanel.java:213) at card.Header.<init>(Header.java:191) at main.ChartPanel.<init>(ChartPanel.java:147) at main.Chart.rebuildChartsAndPanels(Chart.java:290) at main.Chart.init(Chart.java:274) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 例外: java.lang.NullPointerException java.lang.NullPointerException at main.Chart.start(Chart.java:467) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 例外: java.lang.NullPointerException とあります。 なにがおかしいのでしょうか? お教えいただきたくお願い申し上げます。

  • java 初心者です

    javaの勉強しようと思い、ゲームを作ることになったのですが、画像が表示されなくて困っています。 構想としてはメインクラスからフレームクラス(gameFrame)を呼び出し、フレームクラスから画像表示クラス(Layer)を呼び出したいのですが、 Exception in thread "main" java.lang.NullPointerException at Layer.paint(Layer.java:25) at Layer.<init>(Layer.java:17) at gameFrame.newLayer(gameFrame.java:25) at main.main(main.java:9) というエラーが出てうまくいきません。 下記にLayerクラスを載せるのでお願いします。 import java.awt.*; import javax.swing.*; public class Layer extends JPanel{ int x=0; int y=0; private static final long serialVersionUID = 1L; Image image = null; Layer(String img,int X,int Y){ image=roadImage(img); setVisible(true); x=X; y=Y; paint(this.getGraphics()); } public void paint(Graphics g){ System.out.println("ペイント"); System.out.println(image); g.drawImage(image,x,y,this); System.out.println("ペイント終わり"); } static Image roadImage(String path){System.out.println("イメージセット"); if(path == null){ System.out.println("pathはnullです"); } System.out.println("pathは"+path+"です。"); Toolkit kit = Toolkit.getDefaultToolkit(); return kit.getImage(path); } }

専門家に質問してみよう