我正在使用哪种JRE

noq*_*ery 52 java

有两种JRE可供选择.Java VM:IBM vs Sun.

有没有办法通过java脚本或一些java发出的命令知道我正在使用哪个JRE.

Ern*_*ser 146

以下命令将告诉您有关Java版本的许多信息,包括供应商:

java -XshowSettings:properties -version
Run Code Online (Sandbox Code Playgroud)

适用于Windows和Linux

  • 感谢您的评论,我只是在我的Mac上尝试过它并没有用,好抓 (3认同)
  • 这绝对是我在这里找到的最有用的答案 (3认同)

Fra*_*ank 33

 System.out.println(System.getProperty("java.vendor"));
 System.out.println(System.getProperty("java.vendor.url"));
 System.out.println(System.getProperty("java.version"));

 Sun Microsystems Inc.
 http://java.sun.com/
 1.6.0_11
Run Code Online (Sandbox Code Playgroud)

http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

  • 这并不能区分 Oracle JRE 和 OpenJDK - 请参阅[此答案](/sf/answers/3850173001/) (2认同)

小智 29

  1. 打开你的:
    • 如果您正在使用Windows,则命令提示符
    • 终端,如果你使用的是mac或linux
  2. 输入:

    java -version // this will check your jre version
    javac -version // this will check your java compiler version if you installed the jdk
    
    Run Code Online (Sandbox Code Playgroud)
  3. 拿一杯咖啡,你做完了!如果一切安装正确,你不需要将.exe添加到java -version

  • 这只是获取版本,而不是 JRE 供应商 (2认同)

Fra*_*uga 18

在linux中:

java -version
Run Code Online (Sandbox Code Playgroud)

在Windows中:

java.exe -version
Run Code Online (Sandbox Code Playgroud)

如果您需要有关jvm的更多信息,可以使用参数调用可执行文件-XshowSettings:properties.它将显示许多系统属性.也可以通过System.getProperty(String)Java类中的静态方法访问这些属性.例如,这是一些可以被忽略的属性的摘录:

$ java -XshowSettings:properties -version
[...]
java.specification.version = 1.7
java.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
java.version = 1.7.0_95
[...]
Run Code Online (Sandbox Code Playgroud)

因此,如果您需要从Java代码访问任何这些属性,您可以使用:

System.getProperty("java.specification.version");
System.getProperty("java.vendor");
System.getProperty("java.vendor.url");
System.getProperty("java.version");
Run Code Online (Sandbox Code Playgroud)

考虑到有时供应商 不像OracleIBM那样明确暴露.例如

$ java version
"1.6.0_22" Java(TM) SE Runtime Environment (build 1.6.0_22-b04) Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

HotSpot是Oracle调用JVM实现的方式.如果供应商似乎没有显示,请检查此列表-version

  • 供应商名称不存在 (2认同)