- - PR -
Javaで設定ファイルを読み込む方法
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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 を実行する。 | ||||||||||||
|
投稿日時: 2004-10-26 17:41
java.lang.System#setProperties(java.util.Properties)で解決しませんか?
取得したプロパティファイルからシステムプロパティに値をセットできます。 | ||||||||||||
|
投稿日時: 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(); } } } | ||||||||||||
|
投稿日時: 2004-10-27 11:53
私の理解では「ない」と思います。
あるんじゃないですかね?用途ごとに分ける場合もあるでしょうし。 その場合は、やっぱり3回loadする必要がありますけど 私でしたら、それぞれのread用クラスを作って、その中で それぞれのPropertiesクラスを生成します。 あとは、読み込んだ後にsingletonか何かのオブジェクトに 格納しておいて使いまわすというくらい? そんな感じです。
[ メッセージ編集済み 編集者: (株)ぽち 編集日時 2004-10-27 11:58 ] [ メッセージ編集済み 編集者: (株)ぽち 編集日時 2004-10-27 11:59 ] |
1