如何在14.04 LTS上安装OpenJDK 8?

(2017-08-08:问题清理并在新答案中总结)

Java 8现在可以根据http://openjdk.java.net/projects/jdk8/获得 ,但http://openjdk.java.net/install/尚未提及如何安装OpenJDK 8(不是Oracle Java) Ubuntu 14.04长期支持。 (对于14.10及更高版本,只需运行apt-get install openjdk-8-jdk

如何以及何时可以做到这一点?

(现在我们将使用Oracle Java – 然而,对我来说,最佳解决方案是来自Ubuntu存储库的OpenJDK,直到Oracle Java可直接从Ubuntu存储库中获得)


你可以这样做;

最后更新

JDK

 sudo apt-get install openjdk-8-jdk 

JRE

 sudo apt-get install openjdk-8-jre 

旧的更新

我找到了两个存储库,但我不建议

  • OpenJDK构建(所有拱门)

     ppa:openjdk-r/ppa 
  • OpenJDK 8 backport值得信赖

     ppa:jochenkemnade/openjdk-8 

原始信息

如果你真的想使用OpenJDK,你必须从源代码编译 。 OpenJDK还没有任何PPA。

已通过https://bugs.launchpad.net/ubuntu/+bug/1297065申请

我建议您使用Webup8 Oracle Java8 Installer

 sudo add-apt-repository ppa:webupd8team/java -y sudo apt-get update sudo apt-get install oracle-java8-installer 

自动设置Java 8环境变量

 sudo apt-get install oracle-java8-set-default 

核实

 java -version 

所以你必须等待使用OpenJDK8

 sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk sudo update-alternatives --config java sudo update-alternatives --config javac 

OpenJDK 8于2014年3月发布。截至本期问题,Ubuntu官方版本中没有任何Ubuntu版本的OpenJDK 8软件包。 正如JDK 8项目页面所说,它们“即将推出”,很快就会有一些定义。

首先,OpenJDK 8软件包将登陆Ubuntu开发版。 这可能发生在14.10开发周期中,但据我所知,没有固定的时间表。 一些预览包已经构建并可用于测试,请参阅debian-java和Ubuntu openjdk邮件列表上的公告。 在某些时候,这些包将被上传到Debian和Ubuntu开发存储库。

一旦OpenJDK 8进入Ubuntu开发版本,就可以请求将其向后移植到14.04。 请注意,它永远不会在主trusty存储库中可用,但如果您使用trusty-backports那么它可以在某个时候从那里安装。 在这里阅读有关在Ubuntu中请求backport的过程。

注意 – 这仅适用于14.10或更高版本

晚了1年,但今天它与apt-get一样有效。

用于安装JDK:

 $ sudo apt-get install openjdk-8-jdk 

要安装JRE:

 $ sudo apt-get install openjdk-8-jre 

如何设置默认JDK

最快的方式

运行$ sudo update-alternatives --config java并输入您选择使用的JDK的编号。

第二种方式

列出可用的JDK:

 $ update-java-alternatives -l java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64 

现在,要复制并粘贴Open JDK 8的位置以匹配以下命令:

 $ sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64 

这是我用来在Ubuntu 14.04 LTS上从头开始设置Oracle Java 7和Java 8 [注意:不是OpenJDK]:

 apt-get -y -q update apt-get -y -q upgrade apt-get -y -q install software-properties-common htop add-apt-repository ppa:webupd8team/java apt-get -y -q update echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections apt-get -y -q install oracle-java8-installer apt-get -y -q install oracle-java7-installer update-java-alternatives -s java-8-oracle 

这是无人值守的,适合包含在Vagrant配置块中; 我有一个更详细的要点: https : //gist.github.com/tinkerware/cf0c47bb69bf42c2d740

编辑:这将自动接受Oracle的JDK许可; 在运行它之前先确保你没问题。

截至2017-08-08,我发现这个问题及其答案已经变得有点难以理解这个问题,所以我在这个答案中总结了这些发现。

答案非常简短, 截至2017-08-08的OpenJDK 8尚未正式面向Ubuntu 14.04

但是有很多选择:

  • 升级到更新版本的Ubuntu。 OpenJDK 8从14.10开始提供。 (OpenJDK 9从16.04 LTS开始,OpenJDK 11从18.04 LTS开始)
  • 从http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html手动下载并安装Oracle Java(不是OpenJDK)作为tar.gz文件,只需要解压缩并具有在bin目录可以添加到$PATH变量之前接受的许可证。 您也可以选择使用第三方PPA。 请注意,Oracle Java似乎仅适用于可预见的未来付费客户(围绕Java 11)。
  • 使用第三方PPA下载OpenJDK 8。
  • 从http://www.azul.com/downloads/zulu/zulu-linux/(DEB )下载Azul认证的OpenJDK 8版本
  • 编译源代码并自行安装。

请参阅其他答案了解详情

请注意,个人包裹档案(PPA)通常由个人自愿制作。 内容可能已过期或在没有警告的情况下消失。

我个人建议将Ubuntu升级到18.04 LTS,或者如果不能下载Azul版本。


注意:如果您仍然需要将OpenJDK 8反向移植到14.04,请通过登录并点击顶部的“它是否会影响您”来投票支持此错误: https : //bugs.launchpad.net/ubuntu/+source/openjdk-8/ +错误/ 1368094

注意自2016年4月22日起,Vivid的包装已被删除,唉。 packages.ubuntu.com中的新闻:“反映xenial版本,添加yakkety,删除生动”。 这个答案的解决方法很聪明,但在当前情况下不再适用。 截至2017年1月6日,在可靠的packages.ubuntu.com/trusty-backports/java上没有java 8的后端。 请修改以适用更改。


请参阅Android官方网站的答案

https://source.android.com/source/initializing.html

Ubuntu 14.04没有支持的OpenJDK 8软件包。 Ubuntu 15.04 OpenJDK 8软件包已成功用于Ubuntu 14.04。 使用以下说明发现较新的软件包版本(例如15.10,16.04版本)不能在14.04上运行。

从http://packages.ubuntu.com/vivid/openjdk-8-jdk下载适用于您的架构的.deb软件包:
的openjdk -8- JRE-无头
的openjdk -8- JRE
的openjdk -8- JDK

请记住,您可以通过以下方式获取机器的架构:

 $ uname -m 

x86_64代表64位(amd64)Linux内核架构,i386 / i486 / i586 / i686代表32位(i386)系统。

(可选)使用http://packages.ubuntu.com/vivid/openjdk-8-jdk上的信息确认下载文件的校验和。

例如使用sha256sum工具:

 $ sha256sum {package file} 

安装包:

 $ sudo apt-get update 

为您下载的每个.deb文件运行dpkg。 由于缺少依赖项,它可能会产生错误:

 $ sudo dpkg -i {downloaded.deb file} 

修复缺少的依赖项:

 $ sudo apt-get -f install 

我刚刚在这里投票,现在我们是733人,我们关心将openjdk-8向后移植到ubuntu-14.04。

我发现这个PPA存储库非常新颖

并希望有希望!?

它对我有用。 我成功地使用以下命令在ubuntu-14.04上安装openjdk-8-jdk:

sudo add-apt-repository ppa:jonathonf/openjdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk

这是我的java -version输出:

 openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~14.04.york0-b11) OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode) 

这是我的uname -a输出:

 Linux mars1 4.4.0-75-generic #96~14.04.1-Ubuntu SMP Thu Apr 20 11:06:30 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 

这是我的lsb_release -a输出:

 Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty 

我的虚拟主机服务器提供商告诉我他们只提供对Ubuntu-14.04的支持,我猜他们想要一直这样,直到2019年! 所以如果你知道在ubuntu-14.04上使用openjdk-8有更好的方法,请告诉我吗?

谢谢!

Nix包管理器还为Ubuntu维护OpenJDK 8的二进制包,这意味着你可以在不到五分钟的时间内完成一个可用的Java 8编译器(当然是快速的互联网连接)。

步骤是:

  1. 安装Nix软件包管理器( https://www.domenkozar.com/2014/01/02/getting-started-with-nix-package-manager/):$ $ bash <(curl https://nixos.org/nix/install)

  2. 运行shell单线程Nix告诉你在安装结束时: $ . ~/.nix-profile/etc/profile.d/nix.sh $ . ~/.nix-profile/etc/profile.d/nix.sh

  3. 安装OpenJDK Nix包: $ nix-env -i openjdk

  4. 检查javac$ javac -version

而已。 哦,你要确保将第2步中的单行内容放在~/.bashrc 。 这将告诉Nix正确链接您安装的软件包(因为它将实际文件保存在非标准目录中)。

我从官方Debian存储库获取OpenJDK 8,而不是一些随机的PPA。 我是这样做的:

 sudo apt-get install debian-keyring debian-archive-keyring 

制作/etc/apt/sources.list.d/debian-jessie-backports.list

 deb http://.debian.org/debian/ jessie-backports main 

使用near镜像的前缀更改的位置(请参阅https://www.debian.org/mirror/list )

制作/etc/apt/preferences.d/debian-jessie-backports

 Package: * Pin: release o=Debian,a=jessie-backports Pin-Priority: -200 

然后最后做安装:

 sudo apt-get update sudo apt-get -t jessie-backports install openjdk-8-jdk 

实际上,直接从源代码构建Java 8也很容易……听起来很吓人? 使用https://github.com/hgomez/obuildfactory/ ,这真的非常容易,并且非常简单,大约花了15分钟,正如我在http://blog2.vorburger.ch/2014/06/build-上所描述的那样。 你自己的JDK-AT-home.html的

2016年3月11日更新,以root身份运行:

 apt-get update apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DA1A4A13543B466853BAF164EB9B1D8886F44E2A touch /etc/apt/sources.list.d/openjdk.list echo "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main " >>/etc/apt/sources.list.d/openjdk.list echo "deb-src http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main" >>/etc/apt/sources.list.d/openjdk.list apt-get update apt-get -y install openjdk-8-jdk export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 echo "$JAVA_HOME"