Java 10 迁移自 Java 8。在生产中运行服务。

15

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


3
在Java命令行中加入--add-modules参数,以包含非标准Java模块。 - Ralf Renz
2
Java 10有模块化功能,可以使用模块来限制对“public”方法的访问。因此,如果您的代码(或依赖项)直接或通过反射使用某些JDK内部类,则可能会遇到问题。 - Ivan
2个回答

17

我不确定为什么这个问题会被 downvoted,因为它似乎是一个合理的问题。

Oracle 关于将应用程序从 JDK 8 及更早版本迁移到 JDK 9 及以后版本的指南是“只使用 java.se 的应用程序应该可以正常工作”。如果您没有使用(直接或间接通过第三方库或框架)任何 JDK 内部 API(sun.misc.Unsafe 是最臭名昭著的),那么您可以将所有应用程序代码保留在 classpath 中,这很可能无需任何修改即可正常工作。但需要注意的是在一些命令行标志等方面存在一些可能会引起混淆的差异。

我已经撰写了两篇博客,可能对您有所帮助:

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。如果您正在寻找长期支持,Oracle 现在将对此收费。请查看我们的 Zulu OpenJDK 构建。


2
如果你认为一个问题不应该被踩,那么你可以点赞它 ;) +1 - Peter Lawrey
4
@PeterLawrey,特别是当你考虑提供答案的用户隐藏了谁时。 - Eugene

6
一个好的起点是在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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接