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 サイトの他の関連記事を参照してください。