- PR -

Javaで設定ファイルを読み込む方法

1
投稿者投稿内容
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2004-10-26 17:17
Javaで設定ファイルを読み込む方法を教えてください。

$ java -Djavax.net.ssl.keyStore=serverKeys
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=serverTrust
-Djavax.net.ssl.trustStorePassword=password SimpleSSLServerjava

を毎回記述するのは大変なので、設定ファイルから読み込もうと
考えております。

以下の二つの方法が考え付いたのですが、皆さんはどういった
方法をとりますでしょうか?ご教授ください。

方法1.
javax.net.ssl.keyStore=serverKeys の部分などを設定ファイルに
書いておき、読み込みたいと考えております。イメージとしては

下記を設定ファイル configure.propertiesに記述しておき
-Djavax.net.ssl.keyStore=serverKeys
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=serverTrust
-Djavax.net.ssl.trustStorePassword=password

$java configure.properties SimpleSSLServerjava

で読み出す感じです

方法2.

java -Djavax.net.ssl.keyStore=serverKeys
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=serverTrust
-Djavax.net.ssl.trustStorePassword=password SimpleSSLServerjava

自体を、properties.sh にして
$ sh properties.sh

を実行する。
koe
大ベテラン
会議室デビュー日: 2003/07/13
投稿数: 198
投稿日時: 2004-10-26 17:41
java.lang.System#setProperties(java.util.Properties)で解決しませんか?
取得したプロパティファイルからシステムプロパティに値をセットできます。
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2004-10-27 09:45
アドバイスを頂きありがとう御座います。

質問したいことは二点あります。

質問1

一回のprop.load()
で全てのプロパティファイルを読み込むテクニックが
あるのでしょうか?

質問2

propertyファイルの種類ごとに分ける
事ってよくあることなのでしょうか?

--------------------------
下記のように、propertyファイルの種類ごとに分けておいて、

prop.load(new FileInputStream();

で何度も読み出すというイメージでよろしいでしょうか?

一回の
prop.load()
で全てのプロパティファイルを読み込むテクニックが
あるのでしょうか?

javahello.properties
userhello.properties
ssl.properties

prop.load(new FileInputStream("javahello.properties
"));

prop.load(new FileInputStream("userhello.properties
"));

prop.load(new FileInputStream("ssl.properties"));

----------------

package test;

import java.util.*;
import java.io.*;

public class HelloWorldGetProperties {
public static void main(String[] args) {
try {
Properties prop = new Properties();
// プロパティファイルから名前と値のリストを読み込みます
// prop.load(new FileInputStream("javahello.properties"));
prop.load(
new FileInputStream("C:/temp2/properties/javahello.properties"));

// "javahello.message"に設定されている値を取得します
String message = prop.getProperty("javahello.message");
// "javahello.url"に設定されている値を取得します
String url = prop.getProperty("javahello.url");

// 読み込んだ値を表示します
System.out.println("メッセージ:" + message);
System.out.println("URL:" + url);

prop.load(
new FileInputStream("C:/temp2/properties/userhello.properties"));

// "userhello.name"に設定されている値を取得します
String name = prop.getProperty("userhello.name");

// 読み込んだ値を表示します
System.out.println("name:" + name);

prop.load(
new FileInputStream("C:/temp2/properties/ssl.properties"));

// "sslproperties.javax.net.ssl.keyStore"に設定されている値を取得します
String keyStore = prop.getProperty("sslproperties.javax.net.ssl.keyStore");

// 読み込んだ値を表示します
System.out.println("keyStore:" + keyStore);

} catch (Exception e) {
e.printStackTrace();
}
}
}
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-10-27 11:53
引用:

質問1

一回のprop.load()
で全てのプロパティファイルを読み込むテクニックが
あるのでしょうか?



私の理解では「ない」と思います。


引用:

質問2

propertyファイルの種類ごとに分ける
事ってよくあることなのでしょうか?



あるんじゃないですかね?用途ごとに分ける場合もあるでしょうし。
その場合は、やっぱり3回loadする必要がありますけど
私でしたら、それぞれのread用クラスを作って、その中で
それぞれのPropertiesクラスを生成します。

あとは、読み込んだ後にsingletonか何かのオブジェクトに
格納しておいて使いまわすというくらい?

そんな感じです。


コード:

// JavaHelloConfigReader.java
Properties props = new ...
props.load(...

String con1 = ...
String con2 = ...

JavaHelloConfig config = JavaHelloConfig.getInstance();
config.setCon1(...
config.setCon2(...


// UserHelloConfigReader.java
Properties props = new ...
props.load(...

String con1 = ...
String con2 = ...
String con2 = ...

UserHelloConfig config = UserHelloConfig.getInstance();
config.setCon1(...
config.setCon2(...
config.setCon3(...



// SslConfigReader.java
Properties props = new ...
props.load(...

String con1 = ...

SslHelloConfig config = SslHelloConfig.getInstance();
config.setCon1(...



[ メッセージ編集済み 編集者: (株)ぽち 編集日時 2004-10-27 11:58 ]

[ メッセージ編集済み 編集者: (株)ぽち 編集日時 2004-10-27 11:59 ]
1

スキルアップ/キャリアアップ(JOB@IT)