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