如何在Ubuntu下安装JDK 11?


107

因此Java 11已经发布。有人知道如何从命令行安装它(Oracle的OpenJDK)吗?

我希望看到与Oracle Java 10相似的内容:

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java10-installer

PS在类似问题中建议的指导:

sudo apt-get install openjdk-11-jdk

不起作用。


尝试时会遇到什么错误sudo apt-get install openjdk-11-jdk
Mureinik

5
是Linux的“官方”安装说明。有一个RPM(yum),或者您可以从存档库手动安装。但是显然还没有Debian apt-get。问:那为什么不只是从tar.gz安装呢?另请参见update-alternatives
paulsm4 '18

3
@Mureinik“ E:无法在Ubuntu 16.04上找到软件包openjdk-11-jdk”
Dmitriy Dumanskiy

1
@Mureinik目前这个包还是安装的Java 10.将在未来几天更新我想提供的Java 11
罗伯特

5
@Robert接下来的几天,接下来的几周,接下来的几个月...
9ilsdx 9rvj 0lo 18-10-23

Answers:


196

现在可以通过以下方式安装openjdk-11:

sudo apt-get install openjdk-11-jdk

(以前它安装了openjdk-10,但现在不再安装了)


1
这是Oracle版本还是来自于采用OpenJDK?
Dmitriy Dumanskiy

1
实际上我认为它是Oracle OpenJDK之一。我认为Debian / Ubuntu只是从Oracle OpenJDK版本下载了tarball,在顶部添加了一些补丁并构建了它们的软件包。
andresp '18

9
如果您不在任何GUI环境中使用Java,则可能更喜欢安装openjdk-11-jdk-headless。或者,如果您只想运行某些内容而不是进行编译,则openjdk-11-jre[-headless]可能也适合您。
Piohen

11
我必须先运行sudo add-apt-repository ppa:openjdk-r/ppa才能添加存储库。
树栖鲨鱼

3
同样在这里。还sudo apt-get update可以更新存储库。然后sudo apt-get install openjdk-11-jdk工作。
迈克尔

57

要在Ubuntu中安装Openjdk 11,以下命令可以很好地工作。

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt install openjdk-11-jdk

在Pi上,第一个命令给了我:aptsources.distro.NoDistroTemplateException:错误:找不到Raspbian / stretch的分发模板
Nikolay Klimchuk

为我工作openjdk-11-jdk-headless
WhyAyala

38

对于在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

1
哇,甚至类似于Anaconda for Java?谁会想!
约书亚·德特维尔

错误:“下载的zip存档已损坏。您已连接到互联网吗?”
masterxilo

@masterxilo,请您详细说明您遇到的错误,以确保您需要互联网才能下载SDKMAN工具。我只尝试过在UNIX-Platform上安装SDKMAN工具,您是否在Windows平台上尝试呢?
卡马尔

11

须藤apt-get install openjdk-11-jdk

之后,尝试

Java版本

确保Java版本为1.11.x,如果发现旧版本或旧版本,请检查以下命令以查看可用的jdks,

sudo 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

对于上面的命令,您将获得类似下面的内容,并且还会要求设置选项,

替代java(提供/ usr / bin / java)有3个选择。

选择路径优先状态


0 / usr / lib / jvm / java-11-openjdk-amd64 / bin / java 1111自动模式

1 / usr / lib / jvm / java-11-openjdk-amd64 / bin / java 1111手动模式

* 2 / usr / lib / jvm / java-8-openjdk-amd64 / jre / bin / java 1081手动模式

3 /usr/lib/jvm/jdk1.8.0_211/bin/java 0手动模式

按下以保留当前选择[*],或键入选择编号:

您可以选择所需的选择编号,我的情况是0

对于javac,

sudo update-alternatives --config javac

结果将如下所示,

替代javac(提供/ usr / bin / javac)有3个选择。

选择路径优先状态


0 / usr / lib / jvm / java-11-openjdk-amd64 / bin / javac 1111自动模式

1 / usr / lib / jvm / java-11-openjdk-amd64 / bin / javac 1111手动模式

* 2 / usr / lib / jvm / java-8-openjdk-amd64 / bin / javac 1081手动模式
3 /usr/lib/jvm/jdk1.8.0_211/bin/javac 0手动模式

按下以保留当前选择[*],或键入选择编号:

就我而言,又是0

完成上述步骤后,尝试

Java版本

它将显示如下内容,

openjdk版本“ 11.0.4” 2019-07-16

OpenJDK运行时环境(内部版本11.0.4 + 11-post-Ubuntu-1ubuntu218.04.3)

OpenJDK 64位服务器VM(内部版本11.0.4 + 11-post-Ubuntu-1ubuntu218.04.3,混合>模式,共享)


8

在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(path / 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版本。


2

我来这里是为了寻找答案,因为没有人将命令用于oracle Java 11,而只有openjava 11,我才知道如何在Ubuntu上进行操作,其语法如下:

sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
sudo apt install oracle-java11-installer

7
Oracle JVM(热点)不再免费用于生产用途。因此,我希望使用OpenJDK构建。
Dmitriy Dumanskiy

2
可悲的是,我也把它绑起来了,它不起作用。它说E:无法找到软件包oracle-java11-installer
Nditah

2

首先检查default-jdk包装,很可能已经为您提供了OpenJDK >= 11
参考:https : //packages.ubuntu.com/search? keywords = default-jdk & searchon = names & suite = all & section =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,仅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

1

我创建了一个Bash脚本,该脚本基本上可以自动完成链接的类似问题中所述的手动安装。它需要tar.gz文件及其SHA256和值。您可以找到更多信息并从我的GitHub项目页面下载脚本。它是根据MIT许可提供的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.