【问题标题】:Java compatibility compilation modeJava兼容编译模式
【发布时间】:2018-09-06 17:31:46
【问题描述】:

我面临以下难题。我目前正在 32 位和 64 位 Windows 机器上部署 Java 8 应用程序。

自从 Java 8 达到 EoL 后,我开始面临下一步该做什么的非常困难的问题。

由于 Oracle 不会提供其较新 Java 版本的 32 位版本,我现在必须坚持使用 8,尽管通过转向 OpenJDK 的产品,他们似乎承诺支持比 8 的 EoL 更远的产品。为此,我还将作为 VM(提供 32 位版本)迁移到 OpenJ9。

我的问题如下。我开始考虑迁移到 Java 11。我想知道,是否可以使用该 jdk 在兼容模式下编译并以不使用任何 11 个特定功能为代价的目标版本 8?

编译后的代码也可以在这样的组合中正确运行,即兼容编译的 Java 11 代码并部署到运行在 32 位上的环境中吗?

我也想知道对 Java 11 的兼容性支持是什么。

【问题讨论】:

  • 好吧,现在我想起来了,就这么做了,甚至没有意识到。我将 jdk-11 的 -source 和 -target 设置为 1.8,这段代码在 WAS(使用 IBM jre)上运行,但在 64 位上运行

标签: java java-8 jvm java-11


【解决方案1】:

我想知道,是否可以使用该 jdk 进行编译 兼容模式和目标版本 8,代价是不使用任何 11 个具体功能?

理想情况下,--release 8 javac 标志在使用 JDK11 for Java 8 编译时应该可以正常工作。

我想知道,是否可以使用该 jdk 进行编译 以不使用任何 11 个特定功能为代价的兼容模式和目标版本 8?

我猜想第一步编译后生成的字节码可以在 32 位和 64 位运行时系统(环境)中一致使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多