【问题标题】:Upgrading from openJDK 8 to openJDK 11 [closed]从 openJDK 8 升级到 openJDK 11 [关闭]
【发布时间】:2020-12-21 05:58:17
【问题描述】:

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

【问题讨论】:

    标签: java java-11


    【解决方案1】:

    这样做可以在 Ubuntu 上卸载以前版本的 openJDK

    sudo apt-get remove openjdk
    

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

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

    然后安装openJDK 11

    sudo apt-get install openjdk-11-jdk
    

    【讨论】:

    • 为什么不使用 purge 命令?
    • Purge 会将其连同依赖项和配置文件一起删除,如果您愿意,我现在将其添加到答案中。
    • 我应该使用哪一个??
    • 显示找不到openjdk包!
    • 假设您是开发人员,我会推荐 SDKMAN (sdkman.io)。它可以帮助您下​​载、安装和选择不同版本的 JDK 等。
    【解决方案2】:

    升级通常允许为 Java 8 编译的代码运行;但是,有一些警告。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-11-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 2019-06-06
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多