【问题标题】:is it mandatory to having same version of jdk and jre?是否必须拥有相同版本的 jdk 和 jre?
【发布时间】:2019-01-29 09:19:51
【问题描述】:

我有java JDK version 11和JRE version 8,它会不会出现任何功能问题?是否必须具有相同的 jdk 版本和 jre 版本?

【问题讨论】:

标签: java


【解决方案1】:

如果您的代码使用 Java 11 的功能,您将需要 JRE 11 来运行它。但只要您针对 JRE 8 开发代码,使用哪个 JDK 进行开发和编译都没有关系。

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

示例:使用 JDK 11 进行开发,但仅使用 Java 8 的功能 -> 代码将在 JRE 8 中运行。将旧版本视为新版本的子集。

【讨论】:

    【解决方案2】:

    如果您编译面向 Java 8 的代码,并且不使用任何更新的 API,您可以在其中任何一个上运行它。

    如果您为 Java 11 构建,但尝试在 Java 8 上运行,它将无法正常工作。

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

    【讨论】:

      【解决方案3】:

      没有。因为你永远不会同时使用它们。

      【讨论】:

        【解决方案4】:

        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 必须能够解释它。 “同时使用两者”与此有什么关系?我不是在这里抱怨——无意冒犯,我只是好奇,因为我不明白。
        • using both at the same time 我的意思是您可以立即显式删除 JRE,尝试仅配置 JDK 就可以了。 JDK 本身包含 JRE。
        • 啊,我明白了。你的意思是如果你在你正在开发的同一台机器上运行应用程序?但是如果其他人运行你的程序并且只有一个 jre 怎么办?这里的版本必须足够。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-10
        • 1970-01-01
        • 2011-12-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多