ホームページ > Java > &#&チュートリアル > 「getClass().getResource()」を使用してコマンドラインからリソースファイルをロードするにはどうすればよいですか?

「getClass().getResource()」を使用してコマンドラインからリソースファイルをロードするにはどうすればよいですか?

DDD
リリース: 2024-11-06 17:00:03
オリジナル
1050 人が閲覧しました

How to Load Resource Files from the Command Line Using `getClass().getResource()`?

getClass().getResource() を使用したファイルのロード

プロパティ ファイルなどのリソース ファイルを操作する場合、一般的なアプローチは次のとおりです。 getClass().getResource(path) を使用してロードします。ただし、Eclipse などの IDE 内でコードを実行する場合と比較して、コマンド ラインからコードを実行する場合には違いが生じます。

Eclipse 内の動作

Eclipse では、getClass().getResource( path) メソッドは、ソース フォルダーからファイルを効果的にロードします。リソース ファイル (Test.properties など) が Java ファイルと同じパッケージに配置されている場合、Eclipse 内で問題なくアクセスできます。

コマンド ライン デプロイメントに関する問題

コマンド ラインを使用して Eclipse の外部にアプリケーションをデプロイする場合、リソース ファイルがクラスパスに存在しない可能性があります。その結果、getClass().getResource(path) はファイルのロードに失敗し、ヌル ポインター例外が発生します。

解決策

この問題を解決するには、次のことを確認してください。リソース ファイルはクラスパスに含まれます。これは、コンパイルされたクラス ファイルと同じディレクトリにファイルを配置するか、JAR ファイルにパッケージ化することによって実現できます。

代替アプローチ

getClass を使用する代わりに().getResource(path) の場合は、getClass().getResourceAsStream(path) を使用してリソース ファイルの InputStream を作成することを検討してください。このメソッドは、URI をファイルに変換する必要を回避し、ファイル システム、JAR ファイル、ネットワーク経由などのさまざまなソースからのファイルの読み込みを処理します。

最後に、に渡される引数に注意してください。 getClass().getResourceAsStream メソッド。 Foo.class.getResourceAsStream("Test.properties") を使用すると、Foo と同じパッケージからファイルがロードされますが、Foo.class.getResourceAsStream("/com/foo/bar/Test.properties") は、指定されたパッケージ。

以上が「getClass().getResource()」を使用してコマンドラインからリソースファイルをロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート