ホームページ >Java >&#&チュートリアル >画像が ImageIcon でロードされるのに、getClass().getResource() ではロードされないのはなぜですか?
getClass().getResource() によるリソースの読み込みについて
Java では、画像などのリソースにアクセスするには、特定のメソッドが必要です。一般的に使用されるアプローチの 1 つは、getClass().getResource() メソッドです。このメソッドを使用すると、開発者はクラスパスからリソースを取得できますが、ファイルシステムからファイルに直接アクセスすることとは異なります。
質問で述べたように、getClass().getResource() を使用してイメージをロードしようとすると、 null imgURL、失敗を示します。ただし、ImageIcon コンストラクターでパスを明示的に指定すると、イメージは正常に読み込まれました。この矛盾は、getClass().getResource() がローカル ファイル システムではなくクラスパスでリソースを検索するために発生します。
クラスパスは、コンパイルされた Java クラスとその他の必要なリソースを含むディレクトリと JAR ファイルのコレクションです。アプリケーション用に。 Java アプリケーションが実行されると、クラス ローダーは指定されたパスを使用してクラスパス内のリソースを検索します。
getClass().getResource() を効果的に使用するには、クラスパスの性質を理解することが重要です。クラスパスは、Java アプリケーションの起動時にクラスパス環境変数または -cp オプションを使用して変更できます。ロードされているリソースがクラスパス外のディレクトリにある場合、getClass().getResource() を使用しても見つかりません。
結論から言うと、getClass() を使用して画像をロードできなかった理由です。 getResource() は、使用されるパスがクラスパスではなくローカル ファイルシステム内のファイルを指していることを意味します。この問題を解決するには、リソースがクラスパス内に配置され、実行時にクラス ローダーにアクセスできることを確認してください。
以上が画像が ImageIcon でロードされるのに、getClass().getResource() ではロードされないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。