2017-05-13 10 views
0

私のapp.jarはパス/home/user/app/に存在し、プロパティファイルの場所は、/home/user/path/appproperty.propertiesにあります。jarを提出するときに、プロパティファイルのパスを指定する必要があります。

私はjarを送信中にプロパティファイルの場所を指定したいと思います。

java -jar app.jar -Dappproperty.properties="/home/user/path/appproperty.properties" 

しかし、私は取得しています:appproperty.properties(そのようなファイルやディレクトリはありません)

マイコード:スレッド "メイン" java.io.FileNotFoundExceptionで

例外

Properties p = new Properties(); 
FileInputStream fileStream = new FileInputStream("appproperty.properties"); 
p.load(fileStream); 
System.out.println("_username "+p.getProperty("_username")); 
System.out.println("_password "+p.getProperty("_password")); 

答えて

0

-Dappproperty.properties="..."をJVMに渡すと、 new FileInputStream("appproperty.properties");は文字列パラメータを使用してその文字列を検索します。 それはではなく、です。

-Dで渡されるパラメータは、システムプロパティとして からSystem.getProperty(...)にアクセスできます。 だから、あなたがこのような何かを探しているようだ:

String path = System.getProperty("appproperty.properties", ""); 
if (new File(path).isFile()) { 
    try (FileInputStream fileStream = new FileInputStream(path)) { 
     Properties p = new Properties(); 
     p.load(fileStream); 
     System.out.println("_username "+p.getProperty("_username")); 
     System.out.println("_password "+p.getProperty("_password")); 
    } 
} 

最後に、非常に重要なのは、あなたがいない後、-jarパラメータのプロパティを渡す必要があります:すべての検証

java -Dappproperty.properties="/home/user/path/appproperty.properties" -jar app.jar 
+0

名前...まだ同じになっています。 – learner

関連する問題