0

これは私を夢中にさせています。私はこれをグーグルで何時間も費やしましたが、この問題を抱えている他のケースを1つも見つけることができません。プログラムに必要なすべての画像を src フォルダーに入れましたが、プログラムを実行しても画像が描画されません。bin フォルダーを確認すると、適切にコピーされています。bin フォルダーにすべてのリソースがあっても、相対ファイルパスを使用すると、Eclipse はそれらを認識しません。コマンド プロンプトを開いて bin フォルダーに移動し、それを実行すると、すべての画像が描画され、コードは変更されません。相対ファイルパスで画像を使用するようにEclipseを取得するにはどうすればよいですか??

4

2 に答える 2

0

を使用してファイルにアクセスしようとするとnew File("some/relative/path")、パスは常に Java アプリケーションが開始された場所からの相対パスになります。場所がわからない場合は、 を印刷して確認できますnew File(".").getAbsolutePath()。Eclipse の場合、これは Project フォルダーになります。

アプリケーションのソース フォルダー内のファイルにアクセスする場合は、class.getResource("path")またはを使用する必要がありますclass.getResourceAsStream("path")。ここで、path は相対パス (のパッケージに対する相対パスclass) または絶対パス (クラスパスに対する絶対パス) のいずれかです。

したがって、パッケージがfooあり、このパッケージ内に Java ファイルBar.javaとイメージがある場合、またはのいずれかblub.gifを使用してイメージを取得できます-- 先頭に注意してください。Bar.class.getResource("blub.gif")Bar.class.getResource("/foo/blub.gif")/

を使用する以外new File(...)に、これも機能し、クラスとリソースは Jar にパッケージ化されます。

于 2012-11-01T09:10:32.907 に答える
0

Copy imagesデフォルトでは、はその名前を指定するだけでを読み取り、root folderそれを相対パスと見なします。通常、eclipse で Java ファイルのコンパイル後にすべてを格納するために使用されるフォルダー。projecteclipsefileprojectBinclass files

身に着けている場合は修正してください

于 2012-11-01T05:10:10.777 に答える