3

私が継承したアプリケーションは、シェル スクリプトから -D オプションで渡されたプロパティ ファイルによって構成されます。

*-Dcom.gtnet.systemProperties.override.url=file:/usr1/app/gtx/config/override.properties_$INST*

このアプリケーションの複数の同時インスタンスを実行しており、現在、それぞれに個別のプロパティ ファイルがあります。各ファイルの唯一の違いは、ログ ファイルの名前です。そのため、多くのサーバーにまたがる複数のほぼ同一のファイルができあがります。

私の質問は、インスタンスの名前を渡してファイル内で使用できるように、プロパティファイルをパラメーター化または拡張する方法はありますか? したがって、サーバーごとに 1 つのファイルしかありません。アプリケーション コードを変更するオプションはなく、アプリケーションの起動時にファイルを渡す必要があります。

4

2 に答える 2

1

組み込みは変数置換もjava.util.Properties#load(...)サポートしません。#includes

アプリケーションが を使用しておらずProperties.load、代わりに独自のロジックであることがわかっている場合は、これを行うかどうかを調べることができます...ただし、既存のサポートがなければ、アプリケーション コードを変更する必要があります。

アプリケーション コードを変更することはオプションではないと述べているため、プロパティ ファイル ジェネレーターの使用を検討し、プロパティ ファイルを生成するためのテンプレートを管理する必要があります。したがって、完全に展開されたプロパティ ファイルはまだたくさんありますが、それらは 1 つのテンプレート ファイル、場合によってはパラメーター値ファイル、およびプロパティ ファイル ジェネレーターを使用してマスターされます。

于 2012-06-19T17:50:24.937 に答える
1

Java はこれをサポートしていません。本当にアプリを変更できない場合は、パラメーター化されたプロパティ ファイルを読み取り、パラメーターを解決し、パラメーターが解決された一時的なプロパティ ファイルを書き出すランチャーでアプリをラップできます。次に、その一時ファイルを使用してアプリを呼び出します。

于 2012-06-19T18:28:08.303 に答える