複数の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); } } }
実行結果の一部
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