所以 Java 11 is out。有人知道如何从命令行安装它(来自 Oracle 的 OpenJDK)吗?
我希望看到类似 Oracle Java 10 之前的情况:
sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java10-installer
PS在similar问题中提出的说明:
sudo apt-get install openjdk-11-jdk
不起作用。
sudo apt-get install openjdk-11-jdk
时遇到什么错误?
yum
),或者您可以从存档库手动安装。但显然没有 Debian apt-get
(还)。问:那为什么不直接从 tar.gz 安装呢?另见update-alternatives
现在可以通过这种方式安装 openjdk-11:
sudo apt-get install openjdk-11-jdk
(以前它安装了 openjdk-10,但现在没有了)
要在 Ubuntu 中安装 Openjdk 11,以下命令运行良好。
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt install openjdk-11-jdk
openjdk-11-jdk-headless
sudo apt-get install openjdk-11-jdk
在此之后,尝试
java -version
确保 java 版本是 1.11.x,如果发现旧版本或不同版本,请检查以下命令以查看可用的 jdks,
update-java-alternatives --list
您应该会看到如下所示的内容,
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
您可以从上面的列表中看到可用的 java 1.11,使用下面的命令将 java 11 设置为默认值,
sudo update-alternatives --config java
对于上面的命令,你会得到类似下面的东西,并且会要求设置一个选项,
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
*2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
3 /usr/lib/jvm/jdk1.8.0_211/bin/java 0 manual mode
Press <enter> to keep the current choice[*], or type selection number:
您可以选择所需的选择编号,我的情况是 0
对于 javac,
sudo update-alternatives --config javac
将导致如下所示,
There are 3 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 1111 manual mode
*2 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1081 manual mode
3 /usr/lib/jvm/jdk1.8.0_211/bin/javac 0 manual mode
Press <enter> to keep the current choice[*], or type selection number:
在我的情况下,它又是 0
经过以上步骤,试试
java -version
它将显示如下内容,
openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build
11.0.4+11-post-Ubuntu-1ubuntu218.04.3)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3, mixed > mode, sharing)
对于在 Ubuntu 上运行 JDK 并希望升级到 JDK11 的任何人,我建议通过 sdkman 安装。 SDKMAN 是一个用于切换 JVM、移除和升级的工具。
SDKMAN 是一种用于在大多数基于 Unix 的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面 (CLI) 和 API,用于安装、切换、删除和列出候选人。
安装 SDKMAN
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk version
安装 Java (11.0.3-zulu)
$ sdk install java
在 Ubuntu 中,您可以通过以下命令简单地安装 Open JDK。
sudo apt-get update
sudo apt-get install default-jdk
您可以通过以下命令检查 java 版本。
java -version
如果要安装 Oracle JDK 8,请遵循以下命令。
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
如果您想切换 java 版本,您可以尝试以下方法。
vi ~/.bashrc
并添加以下行 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_221
(路径/jdk 文件夹)
或者
sudo vi /etc/profile
并添加以下行
#JAVA_HOME=/usr/lib/jvm/jdk1.8.0_221
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME
export JRE_HOME
export PATH
您可以评论其他版本。这需要注销并重新登录才能使用。如果您想在旅途中尝试它,您可以在同一终端中键入以下命令。它只会更新特定终端的 java 版本。
source /etc/profile
您可以随时通过 java -version
命令检查 java 版本。
首先检查 default-jdk
包,它很可能已经为您提供了一个 OpenJDK >= 11
。
ref: https://packages.ubuntu.com/search?keywords=default-jdk&searchon=names&suite=all§ion=all
Ubuntu 18.04 LTS +
所以从 Ubuntu 18.04 LTS 开始应该没问题。
sudo apt update -qq
sudo apt install -yq default-jdk
注意:不要忘记设置 JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/default-java
mvn -version
Ubuntu 16.04 LTS
对于 Ubuntu 16.04 LTS,官方 repos 中只提供了 openjdk-8-jdk
,因此您需要在 ppa 中找到它:
sudo add-apt-repository -y ppa:openjdk-r/ppa
sudo apt update -qq
sudo apt install -yq openjdk-11-jdk
注意:不要忘记设置 JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
mvn -version
我来这里寻找答案,由于没有人为 oracle Java 11 输入命令,而只有 openjava 11 我想出了如何在 Ubuntu 上执行此操作,语法如下:
sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
sudo apt install oracle-java11-installer
我创建了一个 Bash 脚本,它基本上可以自动执行链接 similar question 中描述的手动安装。它需要 tar.gz
文件及其 SHA256 总和值。您可以从我的 GitHub project page 找到更多信息并下载脚本。它是在 MIT 许可下提供的。
我在 ubuntu 17.04 上安装 open jdk 时遇到问题我设法使用以下步骤安装它:
wget https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz -O /tmp/openjdk-11+28_linux-x64_bin.tar.gz
tar xfvz /tmp/openjdk-11+28_linux-x64_bin.tar.gz --directory /usr/lib/jvm/
rm /etc/alternatives/java
ln -s /usr/lib/jvm/jdk-11/bin/java /etc/alternatives/java
java -version
你应该看到这个:
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
刚刚将较旧的 Ubuntu 版本更新为 openJDK 11 实际上我只需要 Jenkins 并且它似乎工作正常。
Ubuntu 12.04(精确):
从 openjdk-lts (11.0.4+11-1~12.04) precise 下载
文件:
openjdk-11-jre-headless_11.0.4+11-1~12.04_amd64.deb
openjdk-11-jre_11.0.4+11-1~12.04_amd64.deb
Ubuntu 14.04 (Trusty):
从 openjdk-lts (11.0.5+10-2ubuntu1~14.04) trusty 下载
文件:
openjdk-11-jre-headless_11.0.5+10-2ubuntu1_14.04_amd64.deb
openjdk-11-jre_11.0.5+10-2ubuntu1_14.04_amd64.deb
安装
下载后我用 Ubuntu 软件中心安装了文件(首先是“headless”!)
然后我用 sudo update-alternatives --config java
选择了新版本
我不必更改任何环境变量(如 JAVA_HOME)——也许 Jenkins 并不关心它们……
如果你想使用官方的 oracle jdk。然后从 oracle 网站下载 jdk 11 或最新版本:https://www.oracle.com/java/technologies/javase-downloads.html
然后使用此命令安装: sudo dpkg -i 您下载的文件
然后使用 /etc/profile 文件添加到您的 PATH 中。
就我而言,它只是使用 ubuntu 20.04 100% 工作
注意:官方 oracle jdk 免费仅用于开发。
不定期副业成功案例分享
openjdk-11-jdk-headless
。或者,如果您只想运行某些东西,而不是编译,那么openjdk-11-jre[-headless]
也可能适合您。sudo add-apt-repository ppa:openjdk-r/ppa
才能添加存储库。sudo apt-get update
来更新存储库。然后sudo apt-get install openjdk-11-jdk
工作。