Java 是否必须拥有相同版本的jdk和jre?

Java 是否必须拥有相同版本的jdk和jre?,java,Java,我有JavaJDKversion11和JREversion8,它是否会在功能上出现问题?jdk版本和jre版本必须相同吗 不是。因为您永远不会同时使用这两种功能。如果您的代码使用Java 11的功能,您将需要JRE 11来运行它。但是,只要您根据JRE 8开发代码,使用哪个JDK开发和编译并不重要 您可以将IDE中的项目设置为JRE 8的兼容级别(如)。这可以防止使用比Java8更新的功能 示例:使用JDK11开发,但仅使用Java8中的功能->代码将在JRE8中运行。将旧版本视为新版本的子集。

我有JavaJDKversion11和JREversion8,它是否会在功能上出现问题?jdk版本和jre版本必须相同吗

不是。因为您永远不会同时使用这两种功能。

如果您的代码使用Java 11的功能,您将需要JRE 11来运行它。但是,只要您根据JRE 8开发代码,使用哪个JDK开发和编译并不重要

您可以将IDE中的项目设置为JRE 8的兼容级别(如)。这可以防止使用比Java8更新的功能


示例:使用JDK11开发,但仅使用Java8中的功能->代码将在JRE8中运行。将旧版本视为新版本的子集。

如果编译针对Java 8的代码,并且不使用任何新的API,则可以在其中任何一个上运行它

如果您是为Java11构建的,但尝试在Java8上运行,它将无法工作


最简单的方法是使用构建软件的JVM(或更新版本)

JREJDK的子集

JDK包括Java运行时环境(JRE)、解释器/加载器(Java)、编译器(javac)、归档器(jar)、文档生成器(javadoc)和Java开发所需的其他工具

如果打开JDK文件夹
(C:\Program Files\Java\jdk1.8.0_152)
,您可以在那里找到JRE


谈到你的问题;不,没有必要让JDK和JRE都具有相同的版本,因为我们没有同时使用这两个版本。

可能的重复我认为问题在于JRE和JDK的版本以及您编写的代码与某些JRE的兼容性。我看到了。我只是不明白你的理由。对于每个版本,Java都添加了一些语言特性。如果您在代码中使用这些,那么它应该运行的JRE必须能够解释它。“同时使用两者”与此有什么关系?我不是在这里抱怨-无意冒犯,我只是好奇,因为我不理解它。
同时使用这两种工具
我的意思是,你可以立即明确地删除JRE,试着配置JDK,你就可以了。JDK本身包含JRE。@mumpitz供参考:啊,我明白了。你的意思是如果你在开发的同一台机器上运行应用程序?但是如果其他人运行您的程序,并且只有一个jre呢?这里的版本必须足够。