【问题标题】:Java Downward compatibility clarificationJava 向下兼容性说明
【发布时间】:2024-08-09 20:10:01
【问题描述】:

我需要对 JRE 做一点说明。向下兼容吗?我的意思是,如果我使用 java5 开发应用程序并且目标具有最新的 java6,我的应用程序是否能够运行?

【问题讨论】:

  • 我认为这是“向下”兼容的反面
  • @matt:作者的术语是正确的,因为downward==backward 和 JRE 向后兼容。另请参阅相关 SO question

标签: java backwards-compatibility


【解决方案1】:

除非您使用的是 sun 文档 Compatibility 中列出的不兼容性

【讨论】:

    【解决方案2】:

    是的,前提是您没有使用真的已弃用的旧 API(例如 v1.1 中已弃用的 API)...甚至可能在那时。

    这就是 API。 字节码是绝对向前兼容的。它已被修改过几次,但始终以向前兼容的方式进行。所以用 JDK 1.4 编译的代码在最新版本中运行良好;但是使用最新版本编译的代码可能无法在旧版 JVM 上运行。

    【讨论】:

      【解决方案3】:

      是的 - Java 在这方面做得很好。

      【讨论】:

        【解决方案4】:

        我在 java backwards compatibility 写了这篇文章。

        【讨论】:

          【解决方案5】:

          生成的字节码可以在jvm 的未来版本中运行,但是编译器不向后兼容,因为使用更高版本生成的字节码不会在旧版本中运行。这是 Sun 网站上的好读物here

          【讨论】: