2016-10-20 7 views
0

だから私は私のコードでBufferdImageのHarddriveに画像をロードしようとしています。しかし、私はすべてのことを正しくやったと思うけど、私の試練はキャッチから離れてしまう。より良い理解のためjava BufferdImage dosen't load

コード:

private static BufferedImage image; 

public void initPictures() { 
    try { 
     image = ImageIO.read(new File("Pictures/blue.png")); 
    } catch (IOException ex) { 
     System.out.println("Will not load"); 
     ex.printStackTrace(); 
    } 

} 

initPicturesは()クラスの私のコンストラクタで呼ばれています。私がロードしようとしている画像は、自分のOS上のE:\ Dropbox \ Dropbox \ Java Projekte \ FallingBlocks1 \ build \ classes \ Picturesフォルダにあります。だから "Pictures/blue.png"はいいはずです。

Windowsのフォルダの画像:

enter image description here

だからここに私のQustionは次のとおりです。私は何をしないのですか?

EDIT:ex.printStackTrace();何も思考を変えなかった。

EDIT:また、他の画像は「画像を」INTロードしようとした、他の結果

+0

画像ファイルへの完全なファイルパスを試してください。(新しいファイル(Dropbox // JavaProjekte // FallingBlocks1 // build // classes // Pictures // blue.png)); – smoggers

+0

例外自分自身のために言う?そのメッセージは何ですか? – nasukkin

+0

私はすでにフルパス名で試してみました。残念ながらそれは助けにはならなかった。 – Gwitninm

答えて

0

で二つの可能性があります。

1.あなたのプログラムが含まれるフォルダで実行されていない可能性が"画像"フォルダ。あなたのプログラムが実行されている

を調べるには、あなたが実行しているフォルダかを確認するSystem.out.println(System.getProperty("user.dir"));を行います。それはE:\Dropbox\Dropbox\Java Projekte\FallingBlocks1\build\classes以外のものを印刷した場合、あなたはそれはあなたがImageIO.read(file)に提供しているパスに問題があることを知っています。キックの場合は、new File("Pictures/blue.png").isFile()が返ってきたものを見たいかもしれません。

2.画像が判読できない可能性があります。

最初のテストを試して、提供しているパスが正しいことがわかっている場合は、画像ファイルが破損しているか、読み取れない可能性があります(アクセス制限、接続の問題、ハードウェアの問題など)。別のイメージを指してみて、何が起こるか見てみてください。

+0

パッチは正しくありませんでした。今はうまくいっているパスを修正しました。ありがとうございました – Gwitninm

関連する問題