- PR -

環境変数の取得方法

1
投稿者投稿内容
くろ
常連さん
会議室デビュー日: 2004/08/17
投稿数: 42
投稿日時: 2005-09-16 16:43
お世話になっています。

今、Serlvetから自分で設定した環境変数の取得方法で悩んでおります。

OS:Windows2000
で、システム環境変数に、
KEY:TEST_HOME
値:c:\work
を自分で設定し、そのTEST_HOMEの値を、Servletから取得したいのですが、
System#getProperties()では、取得できずに悩んでおります。

何か違った方法で、環境変数の取得が行えるのでしょうか?
それとも、環境変数を設定する方法が違ったのでしょうか?

すみませんが、お力添えをお願い致します。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-09-16 16:48
VM の環境変数にあたるのがシステムプロパティというやつで、まさにくろさんがお試しになっている System.getProperties() で取得できるものです。
これは OS のシステム環境変数とは異なるものなので、システム環境変数を取得することはできません。
たぶんJVM 起動時のオプションに -Dname=value の形で値をわたしてやる必要があります。
武澤
常連さん
会議室デビュー日: 2004/09/27
投稿数: 31
投稿日時: 2005-09-16 16:58
試したことは無いですが、System#getenv(String)はどうでしょう?
1.4までは非推奨ですが、1.5からは非推奨でなくなっています。
やっぱり、要望が多かったってことか・・・。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2005-09-16 16:59
JavaのSDKのバージョンは何?
もし、JDK 5を使用しているのなら、System#getenv()で取得できたはず。

その辺のことが書かれてるサイト、見つけた
http://www-6.ibm.com/jp/developerworks/java/041015/j_j-tiger09304.html
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-09-16 17:14
勉強になりました。

早速実験してみました。
・環境変数(一部)
コード:

$ set|grep OSTYPE
OSTYPE=darwin8.0
$ set|grep USER
USER=myusername



・コード
コード:

public class EnvTest{
public static void main(String[] args){
System.out.println(System.getenv("OSTYPE"));
System.out.println(System.getenv("USER"));
}
}



・JDK1.4.2_09 で
コード:

$ java -cp ~/ EnvTest
Exception in thread "main" java.lang.Error: getenv no longer supported, use properties and -D instead: OSTYPE
at java.lang.System.getenv(System.java:691)
at EnvTest.main(EnvTest.java:3)



・JDK1.5.02 で
コード:

$ ./java -cp ~/ EnvTest
null
myusername



なぜか OSTYPE が取得できませんでしたが、とれるのもあるみたいです。一応実行環境となるプラットフォームで実験したほうがいいかもしれません。
環境は MacOSX10.4.2 です。

[ メッセージ編集済み 編集者: インギ 編集日時 2005-09-16 17:16 ]
くろ
常連さん
会議室デビュー日: 2004/08/17
投稿数: 42
投稿日時: 2005-09-16 17:23
皆さんありがとうございます。

かずくん javaは5を使っております。

これから、早速試したいと思います。
1

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