从 openJDK 8 升级到 openJDK 11

Upgrading from openJDK 8 to openJDK 11

我在 ubuntu 18.04 系统中安装了 JDK 8,现在我想使用 将其升级到 JDK 11。我只想知道这是否会造成任何问题。升级时旧版本会被删除吗(其实我希望旧版本自己删除)?

执行此操作以在 Ubuntu

上卸载以前版本的 openJDK
sudo apt-get remove openjdk

删除所有配置文件和依赖项。

sudo apt-get purge --auto-remove openjdk*

然后安装openJDK 11

sudo apt-get install openjdk-11-jdk

升级通常会允许为 Java 8 编译的代码到 运行;但是,有一些注意事项。

JigSaw 项目的加入意味着“访问”方法的访问规则略有变化。它们在 Java 8 和 Java 11 之间几乎兼容。差异将在以下时间显示:

  1. 您尝试使用 com.sun.* 包之一(或任何其他 non-public api 入口点)。
  2. 您尝试在 non-public API 入口点上使用反射。
  3. 您更改启动以使用模块,这将停用 Java 8“默认”模块处理。

简而言之,这几乎是一次轻松的升级。当代码正在做它不应该做的事情时,或者当你的代码不是为模块设计的,而你的一些 运行time 代码是为模块设计的时候,问题就会出现。

如果您可以访问源代码,则可以通过添加模块规范来解决很多问题;但是,这可能需要您了解模块化(这很容易,但仍然是一个障碍)。