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

标签 java java-8 jvm java-10

<分区>

我们希望将我们所有的生产服务从 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。如果您正在寻找长期支持,Oracle 现在会为此收费。查看我们的 Zulu OpenJDK 构建。

关于从 Java 8 迁移到 Java 10。在生产环境中运行服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51998295/

相关文章:

java - 将InputStream写入RandomAccessFile的最佳方法

java - 如何模拟传递给构造函数的参数

java - 内存消耗 java.util.Date vs java.time.LocalDate vs org.joda.time.DateTime

Java 8 : implementing Comparable

java - 程序运行时继续读取输入

java - 通过鉴别器函数对流进行分区

java - 在 Android 上运行 Java 字节码 - 基于 DalvikVM 的 Sun JVM

Java 泛型 - 为什么 new Money<Dollar>(4.0) === new Money<Franc>(4.0) 相等?

java - JVM 性能测试套件

java - 方法重载中也存在多态性吗?