java - JDK和JRE版本混淆

标签 java

我已经使用 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,但仍无法运行它们。此外,获取最新的 JDK 也是一件痛苦的事情,尤其是在如何摆脱旧版本、将路径指向最新版本、获取正确的包(open/oracle JDK)以及针对 Windows 和其他一些平台执行此操作的经验有限的情况下。 Linux 的发行版。到底是怎么回事?难道我和其他人都是从错误的地方获得 Java 的吗?为什么 Oracle 这样做,为什么没有 Java 更新,因为显然存在更新的版本?

最佳答案

从 Java-11 开始,单独的 JRE 不再存在。换句话说,如果您使用 Java-11 或更高版本,您应该只关心 JDK。

您应该从计算机上卸载 JRE-8,并确保 JDK-14 bin 文件夹位于 PATH 变量中。某些应用程序甚至需要 JAVA_HOME 才能工作,因此您应该确保您的系统有一个名为 JAVA_HOME 的环境变量,并将其值设置为 JDK-14 的根文件夹(即比您的 JDK bin 高一级)。

问:我的客户应该如何运行在 JDK-14 上编译的应用程序?

Ans: 您的客户端必须安装 JDK-14。另外,检查this一些替代方案的线程。

关于java - JDK和JRE版本混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62729130/

相关文章:

java - 如何使用复选框将选定行的数据从 JSP 传递到服务器

java - Swing - 自定义 JComboBox 项目

java - 评级栏返回默认值

JavaFX 在一段时间后隐藏节点

java - 非常频繁地上传几个字节的数据(每秒)

java - 检测 POJO 类中哪个字段!= null?

java - 在作家阅读器中使用信号灯

java - Struts逻辑问题

java - 将整数值转换为字符串时,字符串比较失败,并返回 false boolean 值

java - 未找到 H2 bundle 依赖项