如何在 Ubuntu 18.04 上安装最新的 openjdk 12
Posted
技术标签:
【中文标题】如何在 Ubuntu 18.04 上安装最新的 openjdk 12【英文标题】:How to install the latest openjdk 12 on Ubuntu 18.04 【发布时间】:2019-09-21 02:10:43 【问题描述】:我已经通过发出命令安装了默认 jdk:
apt-get install default-jdk
这将安装 openjdk 11 并且 apt-get 似乎将文件安装到所有地方。例子:
/etc/java-11-openjdk/management
/usr/lib/jvm/java-11-openjdk-amd64/lib
/usr/share/doc/openjdk-11-jre-headless/JAVA_HOME
/var/lib/dpkg/info/openjdk-11-jre:amd64.postinst
从上面的示例位置可以看出,文件散落在各处。
我刚刚安装了一个网络应用程序,它发出警告说它只支持 jdk 12(我认为它是最新的 openjdk 版本)。如何安装版本 12 以替换版本 11?在 Ubuntu 18.04 上升级 openjdk 版本以使其不与以前的版本混合的最佳方法是什么?
【问题讨论】:
也许 docker 可以帮助你。试试ubuntu:19.04
图像。
【参考方案1】:
这对我有用:
-
使用 wget 下载存档或访问 JDK 12 GA Release 站点并手动下载存档:
wget https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz
-
创建 /usr/java 目录:
sudo mkdir /usr/java
-
将存档移至新目录:
mv openjdk-12.0.2_linux-x64_bin.tar.gz /usr/java
-
转到此目录:
cd /usr/java
-
解压存档:
sudo tar -xzvf openjdk-12.0.2_linux-x64_bin.tar.gz
-
设置环境变量,为此打开 /etc/profile 文件:
sudo nano /etc/profile
-
并将以下代码添加到该文件的末尾:
JAVA_HOME=/usr/java/jdk-12.0.2
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH
-
配置Java命令默认使用新的JDK:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-12.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/java/jdk-12.0.2/bin/javac" 1
-
检查 Java 版本:
java -version
如果您之前安装了另一个 Java 版本并且版本没有更改,请尝试运行以下命令并选择所需的版本:
sudo update-alternatives --config java
【讨论】:
将 JAVA_HOME 添加到 /etc/profile 会束缚我使用 jdk12 吗?如果我想要多个 java 版本并且在我执行update-alternatives --config java
时会自动设置 java_home 怎么办?
不要导出不切实际的路径,一直使用update-alternatives来切换java,如果你在真正不完美的软件开发世界中,你会很遗憾有不同版本的项目。在这种特殊情况下,12 甚至不是 LTS,因此至少将路径设置为 LTS。
这对我来说破坏了 sdkmanager。 java -version 是 openjdk version "12.0.2" 2019-07-16
,但 sdkmanager 抛出 Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
。对此有什么简单的解决方案吗?
@MattLarson 我通过用命令行工具替换我的 sdkmanager 安装解决了这个问题:developer.android.com/studio#command-tools 有关如何安装和使用它的示例,请参阅此 dockerfile:github.com/bitrise-io/android/blob/master/Dockerfile【参考方案2】:
来自 Ubuntu 的官方软件包存储库不提供 Openjdk12 软件包,因为 openjdk11 是您的版本的最后一个 openjdk 软件包版本。
【讨论】:
是的,我已经尝试过了。我正在尝试找到安装 openjdk 12 的最佳方法,而不会破坏已经存在的 jdk 11 文件。而且我怀疑我也需要切换到替代方案。 @u84six 你可以将你的 LTS 版本升级到最新的非 lts 版本 19.04 我使用的是 aws EC2,它们不支持 18.04 之后的任何内容。 我认为不幸的是,我必须卸载默认 jdk,然后手动安装 oracle jdk 12。呃。不错的 Linux。 @u84six 你也可以手动安装openjdk openjdk.java.net/install以上是关于如何在 Ubuntu 18.04 上安装最新的 openjdk 12的主要内容,如果未能解决你的问题,请参考以下文章
在 ubuntu 18.04 上安装 opencv 2.4.9