JDK和JRE版本混淆

时间:2020-07-04 12:29:47

标签: java

我已经使用Java了一段时间,最近JDK / JRE版本给我带来了很多麻烦。我正在使用Intellij IDEA IDE进行开发,它当然使用了JDK 14的最新版本。但是,当我尝试在IDE外部执行使用JDK 14编译的软件时,出现错误,表明JRE不够新,无法使用。运行此软件。因此,我在计算机和另一台计算机上更新了Java,然后尝试再次运行而未成功。经过一番挖掘之后,我调整了机器以使用兼容的JDK 14中包含的JRE。

但是我不得不这样做,这很奇怪,人们会认为最新版本的Java应该足以运行使用最新版本的JDK制作的应用程序(14)。目前,Java是版本8内部版本251,并说没有可用的更新。如果JDK 14暂时停产了,为什么他们不更新所发布的Java版本?

该问题已部分解决,因为只有我用于开发的机器才能够执行创建的应用程序。尽管已经安装了最新版本的Java,但我发送给他们的其他人却无法运行它们。同样,获得最新的JDK也是一件痛苦的事情,尤其是在对如何摆脱旧版本,将路径指向新版本的路径更改,获得正确的软件包(open / oracle JDK)以及针对Windows和其他一些软件的经验有限的情况下。 Linux发行版。到底是怎么回事?我是否从错误的地方以及其他所有人那里获得了Java?为什么oracle会这样做,又为什么没有Java更新,因为显然存在更新的版本?

3 个答案:

答案 0 :(得分:2)

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

我建议:

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

答案 1 :(得分:1)

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

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

问:我的客户应该怎么做才能运行在JDK-14上编译的应用程序?

回答:您的客户端必须安装JDK-14。另外,请检查this线程是否有其他选择。

答案 2 :(得分:-1)

尝试卸载Java SE Development Kit和Java JRE(如果您的计算机中同时装有),然后再次重新安装(JDK和JRE),我正在共享我的Google驱动器link,在这里您可以找到最新版本JDK和JRE,然后在完成安装后,在计算机bin中添加Environment Variables文件夹路径。