0

私は2つの独立したプロジェクトAとBを持っており、どちらもmavenを使用して構築されています。プロジェクト B は、よりリソース プロジェクトです。このプロジェクトのjarをパッケージ化するためにmavenを使用しています。

プロジェクト A の場合、プロジェクト B の jar を依存関係として追加します。プロジェクトAのいくつかのJavaファイルにあるプロジェクトBのjarからリソースファイルにアクセスするにはどうすればよいですか.

プロジェクトBのjarがMavenのローカルリポジトリにインストールされていることを確認しました。

私はたくさん検索しましたが、答えはどれも役に立たないようです。

のディレクトリ構造は次のとおりです。

src |_ メイン |_ リソース |_ dir1 |_ dir2 |_ dir3 |_ Some_config_file.txt

プロジェクト A からこの Some_config_file.txt にアクセスしたいのですが、クラスパスからの相対パスを見つけるにはどうすればよいですか

ヘルプ/提案はありますか?

4

1 に答える 1

0

はい、すべてのファイルsrc/main/resourcesは最終的な JAR の一部であり、クラスと同じパスにあります。言い換えれば、あなたはコンパイルされたクラス_Some_config_file.txtの隣に着地します。_dir1._dir2._dir3.Foo.class

このような項目はすべてフラットな CLASSPATH に配置されます。つまり、各 JAR の内容は CLASSPATH で同じ名前空間を共有します。このようなファイルを読み取るには、次を使用する必要がありますClassLoader

getClass().getResourceAsStream("/_dir1/_dir2/_dir3/_Some_config_file.txt`);
于 2013-01-18T19:25:04.210 に答える