Java 我正在使用哪个JRE?
有两种类型的JRE可用 有没有办法通过JavaScript或Java发出的命令来知道我正在使用哪个JRE。在Linux中:Java 我正在使用哪个JRE?,java,Java,有两种类型的JRE可用 有没有办法通过JavaScript或Java发出的命令来知道我正在使用哪个JRE。在Linux中: java -version 在Windows中: java.exe -version 如果需要有关JVM的更多信息,可以使用参数-XshowSettings:properties调用可执行文件。它将显示出很多的优点。也可以通过Java类中的静态方法System.getProperty(String)访问这些属性。例如,这是可以获得的一些属性的摘录: $ java -Xs
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
以下命令将告诉您许多有关
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环境变量和所用二进制文件之间的连接