web-dev-qa-db-ja.com

Open JDKまたはOracle JDKを使用しているかどうかを知る方法は?

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ですか?

20
Abhishek Singh

OracleJDKを使っていると思います。

グーグル検索で見たように、openJDK --versionの出力は次のようになります。

Javaバージョン

openjdkバージョン "1.8.0-internal"

OpenJDKランタイム環境(ビルド1.8.0-internal-0)

OpenJDK 64ビットゼロVM(ビルド25.0-b20-internal、インタープリターモード)

参照: http://mail.openjdk.Java.net/pipermail/jdk8-dev/2013-July/002840.html

9
JFPicard

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)

Oracle-Java-8のubuntu ppaの使用:

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」を取得すると思います。

4
Sascha K

JavaコードでSun.misc.Version#printlnを呼び出すと、バージョン情報がstderrにダンプされます。JDKバージョンをJavaコードからフェッチする場合は、.

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)
1
BaiJiFeiLong