Installing OpenJDK 11 on Ubuntu 18.04
OpenJDK 11于2018年9月25日发布。由于这是版本8之后的第一个LTS版本,因此已经有很长时间了。在Ubuntu 18.04(Bionic Beaver)上安装了该软件包后,它附带了一个名为openjdk-11-jdk的软件包,令我惊讶的是,它仍然是早期版本(Java 10)的一部分。
OpenJDK的SRU异常
Ubuntu Foundation团队为OpenJDK设置了SRU例外。尽管版本10是非LTS发行版,但他们将其打包为
这是一个很好的推论,也许
尽管有一个很小的区域,但是10和11之间存在显着差异-Flight Recorderis现在是开源的。 OpenJDK 10不包含飞行记录器。当时,它是Oracle JDK的商业功能,但OpenJDK 11随它一起提供。
结果,安装
安装Ubuntu的默认JDK
这很简单,您只需要以下软件包。
1 | % apt-get install default-jdk |
但是,请确保检查实际安装的Java版本。
1 2 3 4 | $ java -version openjdk version"10.0.2" 2018-07-17 OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2) OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode) |
手动安装OpenJDK
这也很容易-您只需要下载一个tarball并将其解压缩到某个位置即可。
1 2 3 | % wget https://download.java.net/java/GA/jdk11/28/GPL/openjdk-11+28_linux-x64_bin.tar.gz -O /tmp/openjdk-11+28_linux-x64_bin.tar.gz % sudo tar xfvz /tmp/openjdk-11+28_linux-x64_bin.tar.gz --directory /usr/lib/jvm % rm -f /tmp/openjdk-11+28_linux-x64_bin.tar.gz |
DIV>
1 2 3 4 | $ /usr/lib/jvm/jdk-11/bin/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) |
在JDK之间切换
我更喜欢使用发行版的JDK,只要它可以处理当前的任务即可。在这种情况下,这不是一个选择,至少现在还不是。因此,我正在使用替代框架,这使得在JDK之间轻松切换成为可能。
1 2 | % sudo sh -c 'for bin in /usr/lib/jvm/jdk-11/bin/*; do update-alternatives --install /usr/bin/$(basename $bin) $(basename $bin) $bin 100; done' % sudo sh -c 'for bin in /usr/lib/jvm/jdk-11/bin/*; do update-alternatives --set $(basename $bin) $bin; done' |
一旦OpenJDK 11出现在Ubuntu 18.04中,将只是软件包升级以及要使用的替代开关的问题。
1 2 3 4 5 6 7 8 9 10 11 | % sudo apt-get install --only-upgrade default-jdk % update-alternatives --config java There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode * 2 /usr/lib/jvm/jdk-11/bin/java 100 manual mode Press <enter> to keep the current choice[*], or type selection number: |
DIV>