私は次のように実行できるmain-classのjarを持っています:java -jar test.jar
瓶の中に私は次のようなものがあります
public static void main(String[] args) throws IOException {
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("config.properties");
Properties prop = new Properties();
prop.load(is);
//then I wanna fetch all the properties in the config.properties file
}
私は両方を実行します:
java -jar test.jar
java -jar test.jar -cp / tmp(config.propertiesが配置されている場所)
java -jar test.jar -cp /tmp/config.properties(明らかに機能しませんが、ここで何を達成しようとしているのかがわかります)
コードは機能しませんでした。config.propertiesファイルのパスを$PATHと$CLASSPATHの下に置いたにもかかわらず、3つすべてがNPEをスローしました。
重要なのは、長期的には、構成ファイルを$ {my-config-path}に配置し、それを適切に読み取り/処理することです。しかし、一時的に私はただ速くて汚いものが欲しいだけです。
- プロパティファイルをjarファイルに含めたくありません。
- クラスパスまたはパスの外部に保持したいのですが、jarを実行すると、問題なく検索されます。