Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我正在使用哪个JRE?_Java - Fatal编程技术网

Java 我正在使用哪个JRE?

Java 我正在使用哪个JRE?,java,Java,有两种类型的JRE可用 有没有办法通过JavaScript或Java发出的命令来知道我正在使用哪个JRE。在Linux中: java -version 在Windows中: java.exe -version 如果需要有关JVM的更多信息,可以使用参数-XshowSettings:properties调用可执行文件。它将显示出很多的优点。也可以通过Java类中的静态方法System.getProperty(String)访问这些属性。例如,这是可以获得的一些属性的摘录: $ java -Xs

有两种类型的JRE可用

有没有办法通过JavaScript或Java发出的命令来知道我正在使用哪个JRE。

在Linux中:

java -version
在Windows中:

java.exe -version
如果需要有关JVM的更多信息,可以使用参数
-XshowSettings: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实现。如果供应商似乎没有按照您希望的那样使用Javascript显示
-version

,我相信您希望了解浏览器中使用的JRE版本。因此,您可以包括小程序,它可以准确地告诉您当前浏览器的版本

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);
  }
}

  • 打开您的:
    • 如果正在使用Windows,则命令提示
    • 终端,如果您使用的是mac或Linux
  • 输入:

    java -version // This will check your JRE version
    javac -version // This will check your Java compiler version if you installed the JDK
    
  • 喝杯咖啡,你就完了!如果一切都安装正确,则无需将.exe添加到java-version

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

    java -XshowSettings:properties -version
    

    它可以在Windows、Mac和Linux上运行。

    我遇到了一个问题,我的Java应用程序在没有找到明显证据的情况下停止工作。事实证明,我的系统开始使用64位版本,而不是所需的32位版本()。在Windows中,命令:

    Javaw -version
    
    只是让我回到命令提示符,没有任何信息。直到我试了试

    Javaw -Version 2>x.txt
    type x.txt
    
    它给了我正在执行的是64位版本。它归结为我的
    PATH
    环境变量,首先找到64位版本。

    打开命令提示符:

     Version:  java -version
     Location: where java (in Windows)
               which java (in Unix, Linux, and Mac)
    
    要在Windows中设置Java主页,请执行以下操作:

    java.exe -version
    
    右键点击我的电脑→ 性质→ 高级系统设置→ 环境变量→ 系统变量→ 新的。 名称为JAVA_HOME,值为(例如)c:\programfiles\jdk

    选择路径并单击“编辑”,并将其保留在开头:
    %JAVA\u HOME%\bin…其余设置在此处

    +Windows10+与自己的JRE副本捆绑在一起的软件:

    在您安装的软件的jre/bin文件夹中执行“Git Bash Here”

    然后使用“/java.exe-version”而不是“java-version”来获取 有关软件副本而不是环境变量引用的副本的信息

    获取软件安装的版本:/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)
    
    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)
    
    在PATH变量中获取版本:java-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)
    
    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
    

    要查询的Java系统属性
    system.getProperty(…)
    “Java.runtime.name”
    。这将区分“OpenJDK运行时环境”和“Java(TM)SE运行时环境”。他们都有相同的供应商——“甲骨文公司”


    此属性也包含在java-version的输出中,java版本“1.6.0_22”java(TM)SE运行时环境(build 1.6.0_22-b04)java HotSpot(TM)客户端VM(build 17.1-b03,混合模式,共享)当您看到HotSpot时,它是Sun java。很抱歉,现在是Oracle Java。我不知道为什么人们不投票支持这个版本,因为它在windows和linux中最容易实现。你知道它是否能在Mac上运行吗?谢谢你的评论,我刚刚在Mac上试用过,但没有效果,很好,这个命令报告说Oracle是我Ubuntu系统中的Java供应商,尽管它实际上是OpenJDK。@clapas你能发布你正在运行的Ubuntu版本和你用来安装Java的命令吗?thanks@ErnestoIserUbuntu 14.04。我是通过apt-get安装Java的。这只是获取版本,而不是JRE供应商。这并没有说明您的Java版本供应商的任何信息,这是问题的目的。这并没有区分Oracle JRE和OpenJDK-请参见本文中的“JS”是什么?Java什么的?还有别的吗?(回复者,不在评论中(不带“”)。提前感谢。)thx用于打开windows环境变量和所用二进制文件之间的连接