2016-04-13 1 views
1

私はゲームに取り組んでいます。興味深いことをすることによって言語をよりよく学び、日食ではすべてうまく動作します。私はこの行を使用して日食でイメージ(texures)を読み込むために。.jarに展開した後のリソースへのアクセス。日食ではなく、抽出後ではない

this.image = ImageIO.read(new File("./resources/textures/" + fileName + ".png")); 

これは、Eclipseで完全に正常に動作します。 (http://imgur.com/ckEGEec

ただし、エクスポートした後に、テクスチャが表示されません。 (http://imgur.com/OOFCKUN

リソースフォルダは.jarの内側にあり、テクスチャはフォルダ内にあります。

私はこのコード行を使っても疲れましたが、eclipseや.jarでテクスチャを読み込むことはありません。

this.image = ImageIO.read(this.getClass().getResource("resources/textures/"+fileName + ".png")); 

は何か提案が役立つだろう、手の前に助けてくれてありがとう!他に何かが必要な場合。私に知らせて。

答えて

2

getResource() from Classを使用している場合、接頭辞「/」が付いていない場合は、パスが相対的であると見なされます。しかし、パスの先頭に "/"を付けると、おそらくあなたが探しているクラスパスのルートからリソースを探します。

+0

申し訳ありません私は何かが不足しているが、私が理解しているものから何かを言っている、私は/それを修正する必要がありますそれを修正する必要がありますか? ' と、私はまだ同じを持っている。もしそうなら、私は(。)this.getClass()のgetResource( "/リソース/テクスチャ/" + fileNameに+ ".PNG")' this.image = ImageIO.read を試してみました問題。まあ、同じ問題ではない、それは別のものです。それは私にコンパイルエラーを与える。 'スレッド「スレッド2」の例外java.lang.IllegalArgumentException:input == null! me.mekek.game.Textureの \tで \t(javax.imageio.ImageIO.read(Unknown Source)) (Texture.java:29) ' –

+0

あなたはあなたの瓶にロードしようとしている画像はありますか?あなたのjarファイル内にリソースとしてバンドルされていない場合は、作業ディレクトリ( "./")に関連するパスを使用するときにクラスパス上に見つからない理由を説明します。 –

+0

はいそれは確かです。 http://j.imgur.com/aHtvg80.png .jarの内部がどのように見えるかの写真があります。遅く返事をして申し訳ありません、私は昨日から私のコンピュータにいませんでした。 –