EclipseのJava:getResourceを使用してロードしたいファイルシステム上のファイルはどこに置きますか? (例:ImageIconの画像)
-
06-07-2019 - |
質問
ファイルは、getClass()。getResource(filename)が検索できる場所にある必要があることは知っていますが、どこにあるのかわかりません。
ファイルシステム自体のどこにファイルを置くかと、Eclipseの機能を使用してリソースをセットアップする方法の両方に興味があります。
解決
Eclipseの場合、通常行う必要があるのは、ソースコードディレクトリ内のどこかにフォルダーを設定することだけです。たとえば、ソースを含むディレクトリが / src
の場合、 / src / resources
フォルダーを作成して画像/ファイルを配置できます。その後、クラス内で getResource(" /resources/image.png")
を実行して取得します。
必要に応じて、クラスにアクセスしようとするクラスと同じフォルダ/パッケージ内に画像/ファイルを配置することもできます(例: com.mycompany
パッケージにimage.pngを配置し、 com.mycompany.Foo
クラスにアクセスして getResource(" image.png")
)を呼び出す必要がありますが、画像などのリソースを保持する方が簡単であることがわかりましたクラスフォルダー以外の独自の特別なディレクトリにあるその他のファイル-それらはその方法で管理するのが簡単です。
Eclipseでは、ビルドを行うたびに、このリソースディレクトリ内のファイルが、コンパイルされたクラスとともにビルドディレクトリにコピーされます。
「自動ビルド」がある場合は注意してくださいIDEで(ほとんどの人がそうするように)Eclipseの外部で変更される(つまり、画像編集ツールを使用して画像を編集する)リソースは、IDEがこの変更を常に検出するとは限りません。通常、プロジェクトフォルダーを更新すると、これらの状況でビルド内のファイルが更新されます。
他のヒント
これらはクラスと一緒にsrcフォルダーに置くか、目的のために新しいソースフォルダー(通常 resources と呼ばれます)を作成できますが、コードから同じ場所に配置します。
その後、 getResource(" /com/x/y/foo.png")
を使用してそれらを取得します。