如何知道我是使用Open JDK还是Oracle JDK?

问题描述 投票:14回答:3

使用java -version给了我这个。

java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

它是OpenJDK还是OracleJDK?

java openjdk jdk1.7 oraclejdk
3个回答
9
投票

我认为你正在使用OracleJDK。

正如我在google搜索中看到的那样,openJDK --version输出如下:

java -version

openjdk版本“1.8.0-internal”

OpenJDK运行时环境(build 1.8.0-internal-0)

OpenJDK 64位零虚拟机(构建25.0-b20内部,解释模式)

见:http://mail.openjdk.java.net/pipermail/jdk8-dev/2013-July/002840.html


3
投票

关于debian,jessie-backports,openjdk-8:

openjdk version "1.8.0_66-internal"
OpenJDK Runtime Environment (build 1.8.0_66-internal-b17)
OpenJDK 64-Bit Server VM (build 25.66-b17, mixed mode)

使用ubuntu ppa for oracle-java-8:

java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

我认为,开头的字符串“java”表示Oracle Java,而OpenJDK则为“openjdk”。


0
投票

在java代码中调用sun.misc.Version#println会将版本信息转储到stderr。如果要从java代码中获取JDK版本。

package bj.tmp;

import sun.misc.Version;

public class Foo {
    public static void main(String[] args) {
        Version.println();
    }
}

像这样:

java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
© www.soinside.com 2019 - 2024. All rights reserved.