首页 > 解决方案 > JDK和JRE版本混淆

问题描述

我使用 Java 已经有一段时间了,JDK/JRE 版本最近给我带来了很多麻烦。我正在使用 Intellij IDEA IDE 进行开发,它当然使用最新版本的 JDK,14。但是,当我尝试在 IDE 之外执行使用 JDK 14 编译的软件时,我收到一个错误,即 JRE 不够新运行这个软件。所以我在我的电脑和另一台机器上更新了 Java 并尝试再次运行但没有成功。经过一番挖掘,我调整了我的机器以使用兼容的 JDK 14 中包含的 JRE。

然而,我不得不这样做有点奇怪,有人会认为最新版本的 java 应该足以运行使用最新版本 JDK (14) 制作的应用程序。现在 Java 是第 8 版 build 251,并表示没有更新的更新可用。如果 JDK 14 现在已经发布了一段时间,他们为什么不更新他们发布的 Java 版本呢?

问题已部分解决,因为只有我用于开发的机器能够执行创建的应用程序。尽管拥有最新版本的 java.lang. 获取最新的 JDK 也是一件痛苦的事,特别是在如何摆脱旧版本、将路径指向最新版本、获取正确的包(open/oracle JDK)并为 Windows 和几个执行此操作方面的经验有限时linux的分布。到底是怎么回事?我是否从错误的地方获得了 Java 以及其他所有人?为什么 oracle 这样做,为什么没有 java 更新,因为显然存在较新的版本?

标签: java

解决方案


您对操作系统上的使用方式IntelliJ或使用方式感到困惑。现在, IntelliJ通常带有其 JDK 二进制文件(但即使可以配置,也可以将 IntelliJ 配置为使用您将提供给它的任何 JDK/JRE 构建);但是,如果您在IntelliJ 之外运行 Java 应用程序,则很可能您正在使用本地安装在操作系统上的 Java,这可能通过您的环境变量进行引用。JDKJAVA_HOME

我建议:

  1. java -version入您的 shell(因此您将看到您的操作系统在运行 Java 应用程序时启动了哪个 JVM 实例);
  2. 检查where java(在 Windows 上,或which- 在 Linux 上)您的 shell,以查看您的操作系统上可用的所有 Java 二进制文件。

推荐阅读