読者です 読者をやめる 読者になる 読者になる

【Java】環境変数の取得について(System.getenv)

Java
スポンサーリンク

Java でシステムの環境変数を取得する方法についてまとめました。

環境変数の取得方法

Java でシステムの環境変数を取得するにはSystem.getenv()メソッドを使用します。
 System.getenv (Java Platform SE 8)

メソッド 機能
System.getenv() 全ての環境変数をMapで取得。
System.getenv("PATH") 指定された環境変数を取得。

全ての環境変数を取得する場合は次の通りです。

public class GetEnvSample {
    public static void main(String[] args) {
        Map env = System.getenv();
        System.out.println(env);
    }
}
// 結果
{PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin, USER=tasukujp, ...}

指定した環境変数のみも取得できます。

public class GetEnvSample {
    public static void main(String[] args) {
        System.out.println(System.getenv("JAVA_HOME"));
    }
}
// 結果
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

環境変数とシステムプロパティ

システムプロパティと環境変数を使用すると、ユーザー定義情報を Java プロセスに渡すことができます。ただし、異なる OS で環境変数は意図しない副作用を持つ可能性があるため、可能な場合はシステムプロパティ(-Dオプションなど)を使用することが推奨されています。

public class GetShellProperty {
    public static void main(String[] args) {
        System.out.println(System.getProperty("shell"));
    }
}
$ javac GetShellProperty.java
$ java -Dshell=$SHELL GetShellProperty
shell=/bin/bash

 【Java】システムプロパティの扱い方について(System.getProperty) - TASK NOTES