現在作業中のRMIアプリケーションのコードベースを設定する必要があり、最初に使用してこれを正常に実行しました
try{
ResourceBundle config = ResourceBundle.getBundle("myApp");
String codeBaseUrl = config.getString("codeBaseUrl");
System.setProperty("java.rmi.server.codebase", codeBaseUrl);
} catch (Exception e) {
e.printStackTrace();
}
後で使用する
java -Djava.rmi.server.codebase=http://192.168.1.1/path/to/codebase ...
コマンドラインで。
これらのアプローチはどちらも、再コンパイルせずにコードベースを変更できますが、System.setPropertyアプローチでは、コードベースをプロパティファイルにバンドルして、同じ起動コマンドを使用できます。
私がこれについて読んだチュートリアル/ドキュメントのほとんどは、-Dアプローチを使用しており、これがベストプラクティスとして受け入れられていると信じていますが、なぜ他のものよりも使用する必要があるのかを説明するものを見つけることができませんでした。
-Dは、コードベースなどのシステムプロパティを設定するためのベストプラクティスと見なされますか?また、これによってどのようなメリットが得られますか/どのような落とし穴が回避されますか?