0

Javaで完全なファイルの場所を使用せずにファイルから画像を取得することは可能ですか? 以下のコードは、完全なファイル パスでのみ機能します。

Icon icon = new ImageIcon("/Users/MyMac/Documents/Project/Software/Project/src/UI/Images/default_pic.png");

ファイルパスをそのまま使用することは可能ですか?:

Icon icon = new ImageIcon("/src/UI/Images/default_pic.png");
4

1 に答える 1

2

「/src/UI/Images/default_pic.png」は絶対パスであるため、ルートディレクトリでsrcディレクトリを検索し、次にUIサブディレクトリなどを検索します。必要なものではありません。

「src/UI / Images / default_pic.png」などの相対パスを使用できますが(「/」で始まらないことに注意してください)、その名前が示すように、現在のディレクトリからの相対パスです。したがって、現在のディレクトリが/ Users / MyMac / Documents / Project / Software / Project(または同じサブパスにファイルを含む任意のディレクトリ)である場合は機能しますが、そうでない場合は機能しません。

最後に、別の方法は、クラスパスを介してファイルにアクセスすることです。プロジェクトをjarファイルにパックできることを考えると、イメージファイルはディスク上の個別のファイルではない可能性がありますが、URLまたはInputStreamを取得してアクセスすることはできます。ClassおよびClassLoaderでgetResourceおよびgetResourceAsStreamを検索します。

于 2013-02-24T15:25:56.127 に答える