java - 从系统属性获取 JRE 版本

标签 java

这不是重复的。我想在程序执行时获取当前的 JRE 版本。

为了测试结果,我安装了 JDK 8.91(未安装 JRE 8.91)和 JRE 8.77。我还创建了 JRE_HOME、JAVA_HOME 变量,排除了带有 JDK 文件夹的 Path 变量。

我的 Tomcat 使用 JRE,所以我想在启动它之前获取当前的 JRE 版本。我找到了如下解决方案:

System.getProperty("java.version")

执行后

System.out.println(System.getProperty("java.version"))

我得到的结果是 1.8.0_91,而不是我想要的 1.8.0_77

但是,Oracle文档给出了这是JRE版本的定义。

链接:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperty%28java.lang.String%29

我该如何解决?

最佳答案

当您运行 Java 程序时,它总是在 JRE(Java 运行时环境)上运行。您不能直接在 JDK 上运行程序。

在安装Oracle的JDK时,会附带一个JRE,可以在JDK安装目录下的jre目录下找到。

当您安装 Oracle 的 JDK 时,您可以选择安装“公共(public) JRE”。这是一个与 JDK 本身分开安装的 JRE,供浏览器插件使用。仅当您希望能够在浏览器中运行 Java applet 时才需要它。

关于java - 从系统属性获取 JRE 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37157480/

相关文章:

java - 使用@JoinTable映射时如何指定FK名称?

java - 使用 api 26 构建应用程序,但使用 api 24 构建库

java - 创建简单的 Maven 项目时出现错误

java - Selenium generic 搜索框架

java - Java 中多重有界类型参数的用途是什么?

java - 更改 boolean 数组中的值。选择地方而不是值(value)

java - 在 Struts 1.3 中处理从 Ajax 发布的 JSON 数组

Java JNI GetMethodID 返回 NULL

java - 使用java中的 volatile boolean 标志从 HashMap 中的另一个线程停止一个线程

java - 仅在 Mapper 作业上写入值