これでばっちり!Javaで環境変数を表示

複数のJavaをインストールした環境を使っているとき、きちんと選択したJavaVMが稼働しているか心配になることがあります。そんなときは環境変数を表示してみれば、ばっちり確認できます。

一応、user.nameだけ置換するプログラムとしています。SystemクラスのgetenvメソッドやgetPropertiesメソッドを使うと簡単に確認ができます。

package org.sssg.soft.sample.env;

import java.util.Map;
import java.util.Properties;

public class PrintEnv {
  public static void main(String[] args) {
    Properties ps = System.getProperties();
    String name = ps.getProperty("user.name");
    for (Object o : ps.keySet()) {
      String key = (String) o;
      String value = ps.getProperty(key);
      value = value.replaceAll(name, "\\${user.name}");
      System.out.println(key + ":" + value);
    }
    String javaHome = System.getenv("JAVA_HOME");
    if (javaHome != null) {
      System.out.println(javaHome.replaceAll(name, "\\${user.name}"));
    }
    String path = System.getenv("PATH");
    if (path != null) {
      System.out.println(path.replaceAll(name, "\\${user.name}"));
    }
    Map<String, String> map = System.getenv();
    for (String e : map.keySet()) {
      String value = map.get(e);
      value = value.replaceAll(name, "\\${user.name}");
      System.out.println(e + ":" + value);
    }
  }
}

実行結果の一部

java.runtime.name:Java(TM) SE Runtime Environment
sun.boot.library.path:/usr/java/jdk1.6.0_26/jre/lib/amd64
java.vm.version:20.1-b02
java.vm.vendor:Sun Microsystems Inc.
java.vendor.url:http://java.sun.com/
path.separator::
java.vm.name:Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg:sun.io
sun.java.launcher:SUN_STANDARD
user.country:JP
sun.os.patch.level:unknown
java.vm.specification.name:Java Virtual Machine Specification
user.dir:/home/${user.name}/workspace/eclipse-java-indigo/sample.env
java.runtime.version:1.6.0_26-b03
java.awt.graphicsenv:sun.awt.X11GraphicsEnvironment
java.endorsed.dirs:/usr/java/jdk1.6.0_26/jre/lib/endorsed
os.arch:amd64
java.io.tmpdir:/tmp
line.separator:

java.vm.specification.vendor:Sun Microsystems Inc.
os.name:Linux
sun.jnu.encoding:UTF-8
java.library.path:/usr/java/jdk1.6.0_26/jre/lib/amd64/server:/usr/java/jdk1.6.0_26/jre/lib/amd64:/usr/java/jdk1.6.0_26/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.specification.name:Java Platform API Specification
java.class.version:50.0
sun.management.compiler:HotSpot 64-Bit Tiered Compilers
os.version:2.6.34.9-69.fc13.x86_64
user.home:/home/${user.name}
user.timezone:
java.awt.printerjob:sun.print.PSPrinterJob
file.encoding:UTF-8
java.specification.version:1.6
java.class.path:/home/${user.name}/workspace/eclipse-java-indigo/sample.env/bin
user.name:${user.name}
java.vm.specification.version:1.0
sun.java.command:org.sssg.soft.sample.env.PrintEnv
java.home:/usr/java/jdk1.6.0_26/jre
sun.arch.data.model:64
user.language:ja
java.specification.vendor:Sun Microsystems Inc.
java.vm.info:mixed mode
java.version:1.6.0_26
java.ext.dirs:/usr/java/jdk1.6.0_26/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path:/usr/java/jdk1.6.0_26/jre/lib/resources.jar:/usr/java/jdk1.6.0_26/jre/lib/rt.jar:/usr/java/jdk1.6.0_26/jre/lib/sunrsasign.jar:/usr/java/jdk1.6.0_26/jre/lib/jsse.jar:/usr/java/jdk1.6.0_26/jre/lib/jce.jar:/usr/java/jdk1.6.0_26/jre/lib/charsets.jar:/usr/java/jdk1.6.0_26/jre/lib/modules/jdk.boot.jar:/usr/java/jdk1.6.0_26/jre/classes
java.vendor:Sun Microsystems Inc.
file.separator:/
java.vendor.url.bug:http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding:UnicodeLittle
sun.cpu.endian:little
sun.desktop:gnome
sun.cpu.isalist:

USERNAME:${user.name}
ORBIT_SOCKETDIR:/tmp/orbit-${user.name}
LANG:ja_JP.utf8
SSH_ASKPASS:/usr/libexec/openssh/gnome-ssh-askpass

同じタグの記事: Java
同じカテゴリの記事: Program
関連書籍: Java