OpenJDK 11于 1018年9月25日发布 。由于这是版本8之后的第一个LTS版本,因此期待已久。 在Ubuntu 18.04(Bionic Beaver)上安装了该软件包后,该软件包附带了一个名为openjdk-11-jdk的软件包,令我惊讶的是它仍然是早期版本(Java 10)。

OpenJDK的SRU例外

Ubuntu Foundation团队为OpenJDK设置了SRU例外 。 Altought版本10是非LTS版本,他们将其打包为openjdk-11-jdk直到OpenJDK 11正式发布。 该选择基于以下假设:版本10和版本11之间的接口增量要比版本8和11之间的接口增量小得多。

这是一个很好的推论,也许当OpenJDK的版本从10猛增到11时, apt-get upgrade并不会把事情搞砸。

尽管有一个很小的区域,但是10和11之间有很大的不同,这就是Flight Recorder同时是开源的。 OpenJDK 10不包含飞行记录器,因为那时它是Oracle JDK的商业功能,但OpenJDK 11确实随附了它。

因此,安装openjdk-11-jdk不允许使用JFR来检测应用程序,因为用于启用它的JVM选项根本无法被OpenJDK 10识别。 实际上,JVM无法启动,并抱怨无法识别的选项。

安装Ubuntu的默认JDK

这很简单,您只需要以下软件包。

% apt-get install default-jdk

但是,请检查实际安装的Java版本。

$ 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并将其解压缩到某个位置即可。

% 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

这将是真正的OpenJDK 11

$ /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之间轻松切换。

% 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中 ,将只是软件包升级和使用它的替代选择的问题。

% 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 mode1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1101      manual mode
* 2            /usr/lib/jvm/jdk-11/bin/java                  100       manual modePress <enter> to keep the current choice[*], or type selection number:

翻译自: https://www.javacodegeeks.com/2018/12/installing-openjdk-11-ubuntu-18-04.html

在Ubuntu 18.04上实际安装OpenJDK 11相关推荐

  1. Ubuntu 18.04上Qmmp安装教程

    Qmmp,一个开源的基于Qt的多媒体播放器.它具有多种音频文件格式支持,DSP效果,视觉效果;输出系统支持(OSS4(FreeBSD),ALSA(Linux),Pulse Audio,JACK,QtM ...

  2. linux ubuntu18.1安装教程,Ubuntu 18.04上Qmmp安装教程

    导读 Qmmp是Ubuntu或其他操作系统的Winamp替代品.它像Winamp一样具有最小的界面.Qmmp是一个开源的.免费的基于qm的多媒体播放器,它不仅适用于Ubuntu,还可以安装在ALT L ...

  3. pppoe linux软件,在Ubuntu 18.04上编译安装pppoe客户端软件

    PPPoE(以太网上的点对点协议Point-to-Point Protocol over Ethernet)是许多DSL Internet服务提供商使用的协议. RP-PPPoE是Linux的免费PP ...

  4. 如何使用DevStack在Ubuntu 18.04上安装OpenStack

    Openstack is a free and opensource IaaS cloud platform that handles cloud compute, storage and netwo ...

  5. 如何在Ubuntu 18.04上安装Apache Kafka

    介绍 (Introduction) Apache Kafka is a popular distributed message broker designed to efficiently handl ...

  6. skype linux 安装,如何在Ubuntu 18.04上安装Skype

    Skype是世界上最流行的通信应用程序之一,它使您可以拨打免费的在线音频和视频电话,以及可负担得起的拨打全球移动电话和固定电话的国际电话. Skype不是开源应用程序,也不包含在Ubuntu存储库中. ...

  7. Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装、部署和测试

    Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装.部署和测试 1.环境安装 HyperLedger Fabric 1.2.0环境的安装推荐一篇博客:http ...

  8. 在Ubuntu 18.04上安装和使用Tesseract 4

    量子指南 (QUANTRIUM GUIDES) Today, the extraction of information from scanned documents such as letters, ...

  9. ubuntu memcached php,如何在 Ubuntu 18.04 上安装 Memcached

    Memcached 是一个免费的开源高性能内存中键值数据存储. 它最常用于通过从数据库调用的结果缓存各种对象来加速应用程序. 在本教程中,我们将介绍在 Ubuntu 18.04 上安装和配置最新版 M ...

最新文章

  1. 浅谈阿里云混合云的探索与实践
  2. ActiveMQ的Transport Connectors配置(六)
  3. php redis编程,php + redis 实现关注功能
  4. 5、android使用意图传递数据之全局变量传递
  5. 线下商店销量预测挑战赛
  6. js 获取浏览器 滚动的高度
  7. activiti之奇淫技巧一(自动完成首个任务)
  8. mac下生成.icns图标
  9. python读取excel数据使用pyecharts展示
  10. 8款炫酷的HTML5特效源码
  11. P3456 [POI2007]GRZ-Ridges and Valleys
  12. 基于Html+Css+javascript的网页制作(旅游主题)
  13. 没有免费午餐定理(No Free Lunch Theorem)
  14. python关机usb端口_使用python关闭windows中的特定USB端口
  15. 企业级nginx使用
  16. 全球及中国乘用车安全设备行业研究及十四五规划分析报告
  17. uboot-uboot网络初始化分析
  18. 使用C#为SAP2000开发第一个插件
  19. ETL Automation
  20. 免费分享我的C++版多线程邮件地址采集器 1.0 大小230K 无需安装,纯绿色版

热门文章

  1. Codeforces Round #674 (Div. 3)
  2. 2017 SEERC Divide and Conquer 树上差分
  3. java io系列09之 FileDescriptor总结
  4. JAVA面试常考系列十一
  5. java通过commons-fileupload实现多张图片的上传(servlet)
  6. instanceof关键字
  7. 如何将idea自带的maven添加到环境变量
  8. 转:什么是 Base64编码
  9. JSON | JSON字符串和JSON对象的区别
  10. spring(13)缓存数据