问题: OpenJDK 的 vm 设置了哪些系统属性,以便我可以识别我是在 OpenJDK 下运行,而不是在 Sun/Oracle 的 vm 下运行?
如下所示:https : //gist.github.com/sinewalker/3890869,以下系统属性不足以区分 OpenJDK 的 VM 和 Sun/Oracle 的 VM:
系统属性:
System.out.println(System.getProperty("java.vendor"));
System.out.println(System.getProperty("java.vendor.url"));
System.out.println(System.getProperty("java.version"));
使用 OpenJDK 的 vm 输出以下内容(这些值与您在 Sun 的 VM 上看到的值相同):
Sun Microsystems Inc.
http://java.sun.com/
1.6.0_24
我期待属性值反映 java 命令的输出:
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)