SystemクラスのgetPropertyメソッドは、指定されたキーによって示されるシステムプロパティを取得してくれます。具体的に得られる情報と、その一例は以下のとおりです。
キー | 対応する値の説明 | 値の例 | |
---|---|---|---|
java.version | JREのバージョン | 1.4.2_13 | |
java.vendor | JREのベンダ | Sun Microsystems Inc. | |
java.vendor.url | JavaベンダのURL | null | |
java.home | Javaのインストール先ディレクトリ | C:\j2sdk1.4.2_13\jre | |
java.vm.specification.version | JVMの仕様バージョン | 1 | |
java.vm.specification.vendor | JVMの仕様ベンダ | Sun Microsystems Inc. | |
java.vm.specification.name | JVMの仕様名 | Java Virtual Machine Specification | |
java.vm.version | JVMの実装バージョン | 1.4.2_13-b06 | |
java.vm.vendor | JVMの実装ベンダ | Sun Microsystems Inc. | |
java.vm.name | JVMの実装名 | Java HotSpot(TM) Client VM | |
java.specification.version | JREの仕様バージョン | 1.4 | |
java.specification.vendor | JREの仕様のベンダ | Sun Microsystems Inc. | |
java.specification.name | JREの仕様名 | Java Platform API Specification | |
java.class.version | Javaクラスの形式のバージョン番号 | 48 | |
java.class.path | Javaクラスパス | C:\MyJava | |
java.library.path | ライブラリのロード時に検索するパスのリスト | C:\j2sdk1.4.2_13\bin;.; (省略) |
|
java.io.tmpdir | デフォルト一時ファイルのパス | C:\DOCUME~1\RunDog\LOCALS~1\Temp\ | |
java.compiler | 使用するJITコンパイラの名前 | null | |
java.ext.dirs | 拡張ディレクトリのパス | C:\j2sdk1.4.2_13\jre\lib\ext | |
os.name | OS名 | Windows XP | |
os.arch | OSのアーキテクチャ | x86 | |
os.version | OSのバージョン | 5.1 | |
file.separator | ファイル区切り文字 | \(UNIXでは"/") | |
path.separator | パス区切り文字 | ;(UNIXでは":") | |
line.separator | 行区切り文字 | \r(UNIXでは"\n") | |
user.name | ユーザーのアカウント名 | RunDog | |
user.home | ユーザーのホームディレクトリ | C:\Documents and Settings\RunDog | |
user.dir | ユーザーの現在の作業ディレクトリ | C:\MyJava |
使用中のJavaに関する情報に加えて、OSに関する情報やユーザー名なども取得できます。
実行環境をチェックするアプリケーション
では、一例として、getPropertyメソッドを使って、主処理の前に実行環境を確認するアプリケーションを考えてみます。今回の確認事項は以下の2点とします。
- このプログラムはWindowsでしかテストしていないので、得られたos.name(オペレーティングシステム名)がWindows以外であれば、確認ダイアログで「Windows以外での動作確認はしていませんがOKですか?」と表示し、「いいえ」が選ばれたら終了する
- 2007年1月にサンが発表した脆弱性情報を用いて、得られたjava.version(JREのバージョン)をチェックし、脆弱性のあるバージョンであれば、警告ダイアログで「ご使用中のバージョンのJavaには脆弱性が指摘されています」と表示する
以上を盛り込んだプログラムは下記のようになります。
Mac OSでシステムプロパティを取得する場合の注意点
なお、Mac OSにおいては、Javaが提供しているシステムプロパティとは別に、Apple社が独自に提供しているシステムプロパティ「mrj.version」があります。
しかし、Apple社自身がWebページで説明していますとおり、このシステムプロパティの使用は推奨されていません(Technical Note TN2110 参照)。代わりに「os.name」および「java.runtime.version」を使用することをお勧めします。
Copyright © ITmedia, Inc. All Rights Reserved.