我正在使用哪种JRE

时间:2011-12-12 09:19:36

标签: java

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

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

10 个答案:

答案 0 :(得分:134)

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

java -XshowSettings:properties -version

适用于Windows和Linux

答案 1 :(得分: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

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

答案 2 :(得分:28)

  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
    
  3. 拿一杯咖啡,你做完了!如果所有内容都安装正确,则无需将 .exe 添加到 java -version

答案 3 :(得分:16)

在linux中:

java -version

在Windows中:

java.exe -version

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

$ 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
[...]

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

System.getProperty("java.specification.version");
System.getProperty("java.vendor");
System.getProperty("java.vendor.url");
System.getProperty("java.version");

考虑到有时供应商的公开程度不如 Oracle IBM 。例如

$ 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)

HotSpot是Oracle调用JVM实现的方式。 Check this list如果供应商似乎没有显示-version

答案 4 :(得分:4)

您可以从System属性对象中找到当前运行的JVM版本;请参阅System.getProperties()的javadoc。 “java.vm.vendor”属性提供JVM供应商名称;例如

    String vendor = System.getProperty("java.vm.vendor");

(如果您在沙箱中执行,安全管理器可能会阻止您阅读系统属性。如果是这种情况,那么您将非常幸运。)


如果使用-version命令行参数,某些JVM会报告版本号,但这假定您可以运行命令,并且您知道java命令的/ path名称。或等同物。 (这意味着有鸡和蛋的问题......)

答案 5 :(得分:1)

正如您所期望的那样使用JS,我相信您想知道在您的浏览器中使用的JRE版本。因此,您可以添加java version tester小程序,它可以准确地告诉您当前浏览器的版本。

import java.applet.*;
 import java.awt.*;
 public class JavaVersionDisplayApplet extends Applet
 { private Label m_labVersionVendor; 
   public JavaVersionDisplayApplet() //constructor
   { Color colFrameBackground = Color.pink;
     this.setBackground(colFrameBackground);
     m_labVersionVendor = new Label (" Java Version: " +
                                    System.getProperty("java.version")+
                           " from "+System.getProperty("java.vendor"));
     this.add(m_labVersionVendor);
   }
 }

答案 6 :(得分:1)

打开命令提示符

 Version:  java -version
 Location: where java ( in Windows)
           which java ( in Unix/Linux/Mac)

在Windows中设置Java home: 右键单击我的电脑 - >属性 - >高级系统设置 - >环境变量 - >系统变量 - >新 将名称命名为JAVA_HOME 值为(例如)c:\ programfiles \ jdk

选择路径并点击修改,保持开头为: %JAVA_HOME%\ bin; ...剩余设置在这里

JAVA_HOME

答案 7 :(得分:1)

要查询的Java系统属性System.getProperty(...)"java.runtime.name"。这将区分“ OpenJDK运行时环境”和“ Java(TM)SE运行时环境”。他们都有相同的供应商-“ Oracle Corporation”。

此属性也包含在java -version的输出中。

答案 8 :(得分:0)

我遇到了一个问题,我的java应用程序退出工作时无法辨别我能找到。结果我的系统开始使用64位版本而不是32位版本(Windows Server 2012)。在Windows中,命令:

Javaw -version

刚刚把我带回命令提示符,没有任何信息。直到我试过

Javaw -Version 2>x.txt
type x.txt

它给了我正在执行的是64位版本。它归结为我的PATH环境变量,首先找到64位版本。

答案 9 :(得分:0)

GitBash + Windows10 + 捆绑有其自己的JRE副本的软件

在安装的软件的jre / bin文件夹中执行“ GitBash Here”。 然后使用“ java -version ”的“ ./ java.exe -version ” INSTEAD获得 有关软件副本的信息,而不是PATH环境变量引用的副本。

获取软件安装版本: ./ java.exe -version

JMIM@DESKTOP-JUDCNDL MINGW64 /c/DEV/PROG/EYE_DB/INST/jre/bin
$ ./java.exe -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

在PATH变量中获取版本: java -version

JMIM@DESKTOP-JUDCNDL MINGW64 /c/DEV/PROG/EYE_DB/INST/jre/bin
$ java -version
java version "10" 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)

关于解决原始问题并获取供应商信息:

./java.exe -XshowSettings:properties -version ## software's copy
java       -XshowSettings:properties -version ## copy in PATH