Java 10 从 Java 8 迁移.在生产环境中运行服务



我们希望将所有生产服务从Java 8迁移到Java 10。据我了解,我们可能会面临构建(gradle 等(、依赖项等开发问题。但是,当仅涉及JVM本身(即运行服务(时,如果我们只是在生产中安装JVM 10来运行我们的jar服务,我们会面临任何问题吗?

我不确定为什么这被否决了,因为这似乎是一个合理的问题。

Oracle 自己关于将应用程序从 JDK 8 及更早版本迁移到 JDK 9 及更高版本的指南是"只使用 java.se 的应用程序应该正常工作"。 如果您没有(直接或间接通过第三方库或框架(使用任何 JDK 内部 API(sun.misc.Unsafe 是最臭名昭著的(,那么您可以将所有应用程序代码保留在类路径上,这很可能无需更改即可工作。 有一些差异可能会让您因更改命令行标志等内容而感到困惑。

我写了两篇关于此的博客,可能对您有所帮助:

https://www.azul.com/jdk-9-pitfalls-for-the-unwary/

https://www.azul.com/jdk-10-pitfalls-for-the-unwary/

您还应该记住,迁移到 JDK 10 没有任何意义。 JDK 11 将于下个月发布,届时 JDK 10 的更新将停止。 最好迁移到 JDK 11。 如果您正在寻找长期支持,甲骨文现在正在为此收费。查看我们的 Zulu OpenJDK 构建版本。

一个很好的起点是 Oracle 下载站点上的 JDK 迁移指南。JDK 10 迁移指南介绍了从 JDK 8 到 JDK 10 的迁移,可在此处找到:

https://docs.oracle.com/javase/10/migrate/toc.htm

另一个很好的资源是JDK发行说明,因为它们包括有关已知源代码,二进制和行为兼容性问题的说明。您可以从此处找到链接的 JDK 9 和 JDK 10 版本的发行说明:

https://www.oracle.com/technetwork/java/javase/jdk-relnotes-index-2162236.html

另一个资源是会议视频。我已经准备了好几次关于迁移到JDK 9及更高版本的主题。Devoxx BE 2017的最新版本可以在这里找到:

https://www.youtube.com/watch?v=uSR5JroBp34

最新更新