システムプロパティとは、Javaの動作環境に関する情報です。JVM(Java仮想マシン)の情報を取得して確認したり、ユーザがJava環境を設定できます。この記事では、システムプロパティの一覧と使い方をご紹介します。

Javaシステムプロパティとは

システムプロパティは、Java仮想マシンが環境に合わせて自動的に設定されるものと、ユーザが任意に設定するものとがある。

システムプロパティの設定

ユーザがシステムプロパティを設定するには、javaコマンドに-Dオプションを指定して実行する。

java -Dexample.home="/home" Example.class

Javaアプリケーションでシステムプロパティを設定するには、java.lang.SystemクラスのsetPropertyメソッドを使う。

public class Example {
  public static void main(String[] args) {
    System.setProperty("example.home", "/home");
    System.out.println(System.getProperty("example.home"));
  }
}

システムプロパティの取得

設定されたシステムプロパティは、java.lang.SystemクラスのgetPropertyメソッドで取得できる。

public class Example {
  public static void main(String[] args) {
    // Java Runtime Environmentのバージョン
    String version = System.getProperty("java.version");
    System.out.println(version);
  }
}

システムプロパティ一覧の取得

システムプロパティの一覧を取得するには、java.lang.SystemクラスのgetPropertiesメソッドを使う。

import java.util.Properties;

public class Example {
  public static void main(String[] args) {
    // システムプロパティ一覧の取得
    Properties properties = System.getProperties();
    properties.list(System.out);
  }
}

システムプロパティ一覧

Javaのシステムプロパティ
キー説明
java.versionJava実行環境(JRE: Java Runtime Environment)のバージョン
java.vendorJREのベンダ
java.vendor.urlJavaベンダのURL
java.homeJavaのインストールディレクトリ
java.vm.specification.versionJava仮想マシン(JVM: Java Virtual Machine)の仕様バージョン
java.vm.specification.vendorJVMの仕様のベンダ
java.vm.specification.nameJVMの仕様名
java.vm.versionJVMの実装バージョン
java.vm.vendorJVMの実装のベンダ
java.vm.nameJVMの実装名
java.specification.versionJREの仕様バージョン
java.specification.vendorJREの仕様のベンダ
java.specification.nameJREの仕様名
java.class.versionJavaのクラスの形式のバージョン
java.class.pathJavaクラスパス
java.library.pathライブラリのロード時に検索するパスのリスト
java.io.tmpdirデフォルト一時ファイルのパス
java.compiler使用するJIT (Just in Time)コンパイラの名前
java.ext.dirs拡張ディレクトリのパス
os.nameオペレーティングシステム名
os.archオペレーティングシステムのアーキテクチャ
os.versionオペレーティングシステムのバージョン
file.separatorファイル区切り文字
path.separatorパス区切り文字
line.separator行区切り文字
user.nameユーザのアカウント名
user.homeユーザのホームディレクトリ
user.dirユーザの現在の作業ディレクトリ