14

プロパティファイルで定義されたキーを次のような変数として使用したい:

key1= value1
key2= value2
key3= key1

私は試してみます:

key3= {key1}

また

key3= ${key1}

しかし、それは機能しません!

何かアイデアをお願いします?

4

3 に答える 3

20

Java の組み込みの Properties クラスは、探していることを行いません。

しかし、それを行うサードパーティのライブラリがあります。 Commons Configurationは、私が使用してある程度成功したものです。PropertiesConfigurationクラスはまさにあなたが探していることを行います。

したがってmy.properties、次のような名前のファイルがある場合があります。

key1=value1
key2=Something and ${key1}

このファイルを使用するコードは次のようになります。

CompositeConfiguration config = new CompositeConfiguration();
config.addConfiguration(new SystemConfiguration());
config.addConfiguration(new PropertiesConfiguration("my.properties"));

String myValue = config.getString("key2");

myValueとなります"Something and value1"

于 2012-06-27T14:18:12.787 に答える
0

プロパティ ファイルでキーの値を定義すると、リテラル値として解析されます。したがって、を定義するkey3= ${key1}と、key3 の値は「${key1}」になります。

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream )

私はcsdに同意します。プレーンな構成ファイルはあなたの選択ではないかもしれません. 私は Apache Ant ( http://ant.apache.org/ ) を使用することを好みます。ここでは、次のようなことができます。

<property name="src.dir" value="src"/>
<property name="conf.dir" value="conf" />

その後、キー「src.dir」を使用する場合は、次のように呼び出します。

<dirset dir="${src.dir}"/>

Apache Ant を使用するもう 1 つの利点は、.properties ファイルを Ant ビルド ファイルにロードできることです。次のようにインポートするだけです:

<loadproperties srcFile="file.properties"/>
于 2012-06-27T14:26:44.690 に答える
0

.xmlさらに良い: 最新の Maven を使用します。Mavenを使用すると、いくつかのきちんとしたことができます。この場合、次の行を含む .properties ファイルを作成できます。

key1 = ${src1.dir}
key2 = ${src1.dir}/${filename}
key3 = ${project.basedir}

Maven の pom.xml ファイル (プロジェクトのルートに配置) で、次のようにする必要があります。

<resources>
    <resource>
        <filtering>true</filtering>
        <directory>just-path-to-the-properties-file-without-it</directory>
        <includes>
            <include>file-name-to-be-filtered</include>
        </includes>
    </resource>
</resources>

...

<properties>
    <src1.dir>/home/root</src1.dir>
    <filename>some-file-name</filename>
</properties>

そうすれば、ビルド時にキーの値が変更されます。つまり、コンパイル後にプロパティ ファイル内にこの値が含まれることになります。

key1 = /home/root
key2 = /home/root/some-file-name
key3 = the-path-to-your-project

pom.xml ファイルと同じディレクトリにいる場合は、次の行でコンパイルします: mvn clean install -DskipTests

于 2013-03-28T20:04:10.437 に答える