问题描述
(2017-08-08:在a new answer中进行了清理和总结)
根据http://openjdk.java.net/projects/jdk8/,Java 8现在可用,但http://openjdk.java.net/install/尚未提及如何在Ubuntu 14.04长期支持中安装OpenJDK 8(不是Oracle Java)。 (对于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,你必须从源代码compile。 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 project page所说,它们“很快就会上市”,对于即将推出的一些定义。
首先,OpenJDK 8软件包将登陆Ubuntu开发版本。这可能在14.10的开发周期中发生,但据我所知没有设定的时间表。一些预览软件包已经建成并可供测试,请参阅debian-java和Ubuntu openjdk邮件列表上的公告。在某些时候,这些软件包将被上传到Debian和Ubuntu开发库。
一旦OpenJDK 8处于Ubuntu开发版本中,那么可能会要求将其回溯到14.04。请注意,它在主trusty
存储库中永远不可用,但如果您使用trusty-backports
,那么它可能在某个时刻从那里安装。阅读有关在Ubuntu here中请求backports的过程。
第四种思路
注 – 这只适用于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
这是无人看管的,适合列入流浪者条款;我有一个更详细的要点:https://gist.github.com/tinkerware/cf0c47bb69bf42c2d740
第六种思路
注意从2016年4月22日起,Vivid的软件包已被删除,唉。 package.ubuntu.com中的新闻项目:“反映xenial发布,添加yakkety,删除生动”。这个答案的解决方法很聪明,但在当前情况下不再适用。截至2017年1月6日,在trusty packages.ubuntu.com/trusty-backports/java上没有java 8的backport。请在更改适用时进行编辑。
查看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-headless 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
第七种思路
截至2017年8月8日,我发现这个问题及其答案已经变得有点难以理解这个问题,所以我在这个答案中总结了这些发现。
非常简短的答案是OpenJDK 8截至2017年8月8日并未正式提供给Ubuntu 14.04。
然而,有很多选择可用:
-
升级到较新版本的Ubuntu。 OpenJDK 8从14.10开始提供。 (OpenJDK 9从16.04 LTS开始)
-
以http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html目录的形式手动下载并安装Oracle Java(不是OpenJDK)作为tar.gz文件,只需解压并在
bin
目录添加到$PATH
变量之前接受许可证即可。您也可以选择使用第三方PPA。 -
使用第三方PPA下载OpenJDK 8。
-
从http://www.azul.com/downloads/zulu/zulu-linux/(DEB)下载经过Azul认证的OpenJDK 8版本
-
编译源代码并自行安装。
详情请参阅其他答案。
请注意,个人包装档案(PPA)通常由个人在自愿的基础上制作。内容可能已过时或在没有警告的情况下消失。
我个人建议将Ubuntu升级到16.04 LTS,或者如果无法下载Azul版本。
注意:如果您仍然需要将OpenJDK 8反向移植到14.04,请登录后单击顶部的“影响您”:https://bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1368094
第八种思路
我刚刚投了here,现在我们有733人,我们关心的是将openjdk-8移植到Ubuntu-14.04。
我发现this PPA repository是相当不错的
and hopefully promising!?
它为我工作。我成功地使用以下命令在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
我的virtual-host-server提供商告诉我他们只提供对Ubuntu-14.04的支持,我猜他们想继续这样做直到2019年!所以请让我知道,如果你知道在ubuntu-14.04上有openjdk-8的更好方法吗?
谢谢!
第九种思路
Nix软件包管理器还维护用于Ubuntu的OpenJDK 8的二进制包,这意味着您可以在不到五分钟的时间内开始完成工作的Java 8编译器(当然,使用快速的Internet连接)。
步骤是:
-
安装Nix包管理器(https://www.domenkozar.com/2014/01/02/getting-started-with-nix-package-manager/):
$ bash <(curl https://nixos.org/nix/install)
-
运行shell one-liner Nix在安装结束时告诉您:
$ . ~/.nix-profile/etc/profile.d/nix.sh
-
安装OpenJDK Nix包:
$ nix-env -i openjdk
-
检查
javac
:$ javac -version
而已。哦,并且您需要确保将步骤2中的one-liner放入您的~/.bashrc
中。这将告诉Nix正确连接你的安装包(因为它将实际文件保存在non-standard目录中)。
第十种思路
我从官方Debian仓库获取OpenJDK 8,而不是一些随机PPA。以下是我的做法:
sudo apt-get install debian-keyring debian-archive-keyring
制作/etc/apt/sources.list.d/debian-jessie-backports.list
:
deb http://<httpredir>.debian.org/debian/ jessie-backports main
在那里用<httpredir>
改变近镜像的前缀(参见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