2012-02-11 22 views
4

Javaアプリケーションでは、実行時にファイルパス内の環境変数を解決する必要があります.Windowsの場合、ファイルパスは以下のようにプロパティファイルに指定されます。%JAVA_HOME%\ certs \ myselffign.cer UNIXの場合は$ JAVA_HOME \ certs \ myselffign.cerJavaで実行時の環境変数を解決する方法

Javaアプリケーションは、これらのファイルパスを絶対パスに変換し、証明書をトラストストアに読み込む必要があります。

これにはどのような方法がありますか? 現在、私はos.nameをチェックしています。os.nameがwindowsの場合は、$を探しているウィンドウがない場合は、%%のパターンマッチングとsystem.getenvのパターンマッチングを使用します。

私はこの

+2

'System.getEnv()' *はあなたのやり方です。あなたの質問は何ですか? – skaffman

答えて

5

あなたがの値を使用して実行時にそれを交換、その後、あなたの財産ファイル内の$ {のjava.home}の標準(Java)のテンプレートの構文を使用することができますを行うには良い方法があると期待していますSystem.getProperty("java.home");。だからあなたのファイルではなく、:

certificate=%JAVA_HOME%\certs\myselffign.cer (Windows) 
certificate=$JAVA_HOME\certs\myselffign.cer (*nix) 

ただ、標準を使用します。

certificate=${java.home}/certs/myselfsign.cer 

とコードでは、何かのように:標準テンプレートの構文を使用して

String javaHomePath = System.getProperty("java.home")l 
Properties props = Properties.load(...); 
String certFilePath = props.get("certificate"); 
certFilePath = certFilePath.replaceAll("${java.home}", javaHomePath); 

マインドあなたは、も可能にあなたはオープンソースの不動産代替ツールをいくつか使用しています。 Spring PropertyResolverと同様です。希望が役立ちます。

関連する問題