如何在 14.04 LTS 上安装 OpenJDK 8?

Tho*_*sen 320 java openjdk 14.04

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

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

(2017-08-08:非常简短的答案是: OpenJDK 8 截至 2017-08-08 未从官方存储库中作为 Ubuntu 14.04 的 APT 包正式提供。 请参阅此答案中的完整摘要- 更新 2021-06- 29)

注意:现在我们将使用 Oracle Java - 然而,对我来说最佳解决方案是 Ubuntu 存储库中的 OpenJDK,直到 Oracle Java 可以直接从 Ubuntu 存储库中轻松获得。


muh*_*urk 288

你可以这样做;

最终更新

JDK

sudo apt-get install openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)

JRE

sudo apt-get install openjdk-8-jre
Run Code Online (Sandbox Code Playgroud)

旧更新

我找到了两个存储库,但我不推荐


原始信息

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

已在https://bugs.launchpad.net/ubuntu/+bug/1297065 上请求

我推荐你使用Webup8 Oracle Java8 Installer

注意: WebUpd8 团队的 PPA 已从 2019 年 4 月 16 日起停产,因此该 PPA 没有任何 Java 文件。更多信息可以在PPA 的 Launchpad 页面上找到。因此,由于历史原因,以下方法不再有效且存在。

sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer
Run Code Online (Sandbox Code Playgroud)

自动设置 Java 8 环境变量

sudo apt-get install oracle-java8-set-default
Run Code Online (Sandbox Code Playgroud)

核实

java -version
Run Code Online (Sandbox Code Playgroud)

所以你必须等待使用OpenJDK8

  • 为什么是新编辑?它似乎仍然不在 14.04 存储库中,而且 `sudo apt-get install openjdk-8-jdk` 至少对我不起作用。 (57认同)
  • 截至 2016 年 1 月 11 日,仍然需要非官方的 Ubuntu PPA,因为 OpenJDK 8 尚未登陆。我不认为这可以回答我的问题,即使其他人似乎可以回答。 (17认同)
  • 由于不完整,该答案具有高度误导性,它表示不推荐提到的 PPA,但没有它就无法工作。 (9认同)
  • @JohnMerlino 我的猜测是 PPA 允许在新版本发布时自动更新。 (8认同)
  • openjdk-8 现在在 Utopic 中。https://bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1341628 已被提升到 14.04,因为它是 LTS: (7认同)
  • JohnMerlino Oracle 的 Java 运行时环境不是免费的开源软件!您是否考虑过很多人拒绝使用专有软件? (4认同)
  • 对于那些没有 add-apt-repository 命令的运行: $ sudo apt-get install software-properties-common python-software-properties (3认同)
  • 为什么这比简单地访问 oracle 站点并从源代码下载 Oracle 8 更值得推荐? (2认同)
  • 一年多以来,该错误存在,但仍然没有解决 U-14.04 上 OpenJDK 的问题。为 oracle java 8 安装点赞:`sudo add-apt-repository ppa:webupd8team/java -y`... (2认同)
  • 我仍然无法安装它:`Unable to locate package openjdk-8-jdk` (2认同)

小智 197

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
Run Code Online (Sandbox Code Playgroud)

  • 此存储库已过时;截至今天,最新的 openjdk 1.8 版本为 66。此存储库中可用的版本为 45。 (8认同)

Mic*_*ler 62

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 中请求向后移植的过程。

  • 2016 年 2 月,Java 8 在 Ubuntu 14.04 LTS 上仍然不可用。这令人失望。 (30认同)
  • 现在是 2016 年 9 月,Ubuntu 14.04 LTS 仍将支持到 2019 年......而且很多地方需要很长时间才能采用 16.04,因为大规模的变化(例如 systemd),所以仍然令人失望的是 java 8 不容易在 14.04 上通过 apt 安装:( (8认同)
  • 我试图用您似乎想要的约束来回答您的问题“如何以及何时”:必须来自官方存储库,必须是 OpenJDK,并且必须是 14.04 LTS 版本。 (4认同)
  • Ubuntu 16.04 将于 2016 年 4 月发布,它将具有 [OpenJDK 8](http://packages.ubuntu.com/source/xenial/openjdk-8)。 (3认同)
  • 现在是 2016 年 4 月,仍然没有 Java 8 ...... (2认同)

小智 35

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

晚了 1 年,但就像今天一样,它与 apt-get 一起按预期工作。

安装JDK:

$ sudo apt-get install openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)

安装 JRE:

$ sudo apt-get install openjdk-8-jre
Run Code Online (Sandbox Code Playgroud)

如何设置默认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
Run Code Online (Sandbox Code Playgroud)

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

$ sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64
Run Code Online (Sandbox Code Playgroud)

  • 在 sudo apt-get update 之后,我在 Linux 14.04 上仍然只看到 JDK 6 和 7,没有 openjdk-8-jdk。您是否添加了一些特殊的存储库?我已经启用了可信赖的反向移植。 (3认同)
  • 我认为您运行的是 14.10 或 15.04,不是吗? (2认同)

Cag*_*tay 22

这是我在 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
Run Code Online (Sandbox Code Playgroud)

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

编辑:这将自动接受 Oracle 的 JDK 许可证;在运行它之前,请先确保您对此感到满意。

  • 这是 _Oracle_ Java,而不是问题所在的 _OpenJDK_ Java。另请注意,回声线绕过了安装程序的许可证接受问题。 (5认同)
  • @ThorbjørnRavnAndersen 是的,我确实注意到这个问题是关于 OpenJDK 的;我特地说了我的方法是安装Oracle Java。您可能会争辩说这不相关,但我认为注意到一个替代方案是有价值的,该替代方案仍然可以为您提供可以在 14.04 LTS 上运行 Java 7/8 的运行时。许可接受问题的“规避”是一个有趣的词选择;我会说在运行脚本之前应该阅读 Oracle 许可证,它会在安装过程中自动接受。 (3认同)
  • 谢谢@Cagatay !!这个答案对我非常有用,我正在寻找使用 Vagrant 的 Java 8 安装。 (3认同)

Tho*_*sen 16

截至 2017 年 8 月 8 日,我发现这个问题及其答案变得有点难以深入了解这个问题,所以我总结了这个答案中的发现。

非常简短的回答是,截至 2017-08-08 的 OpenJDK 8 尚未正式用于 Ubuntu 14.04

然而,有几个选项可用:

  • 升级到较新版本的 Ubuntu。OpenJDK 8 从 14.10 开始提供。(OpenJDK 9 从 16.04 LTS 开始,OpenJDK 11 从 18.04 LTS 开始)。除非您得到长期支持,否则这是 2021 年的最佳方法。
  • http://www.azul.com/downloads/zulu/zulu-linux/下载 Azul 认证的 OpenJDK 8 版本- 它们有 64 位和 32 位版本。
  • http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html手动下载并安装 Oracle Java(不是 OpenJDK)作为 tar.gz 文件,该文件只需要解压并具有在bin可以将目录添加到$PATH变量之前接受的许可证。您也可以选择使用第三方 PPA。 重要提示:许可证在 2019 年更改为更具限制性,您可能需要成为付费客户才能在生产中使用 Oracle Java!
  • 使用第三方 PPA 下载 OpenJDK 8。这是一个越来越糟糕的主意,因为它们往往会变得陈旧或消失,因为它们通常是由个人自愿制作的。
  • 编译源码并自行安装。

(请随意添加其他供应商)

有关详细信息,请参阅其他答案。

我个人建议将 Ubuntu 升级到 18.04 LTS,或者如果不可能下载 Azul 版本。从 16.04 开始,AdoptOpenJDK/Eclipse Adoptium 只是 x64 上的一个选项。


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


小智 5

注意自 2016 年 4 月 22 日起,Vivid 的软件包已被删除,唉。packages.ubuntu.com 中的新闻:“反映 xenial 版本,添加 yakket,删除生动”。这个答案的解决方法很聪明,但在当前情况下不再适用。截至 2017 年 1 月 6 日,可信赖的packages.ubuntu.com/trusty-backports/java 上还没有java 8 的反向移植。请在更改适用时进行编辑。


从安卓官网看答案

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    
Run Code Online (Sandbox Code Playgroud)

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

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

例如使用 sha256sum 工具:

$ sha256sum {package file}    
Run Code Online (Sandbox Code Playgroud)

安装软件包:

$ sudo apt-get update    
Run Code Online (Sandbox Code Playgroud)

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

$ sudo dpkg -i {downloaded.deb file}    
Run Code Online (Sandbox Code Playgroud)

要修复缺少的依赖项:

$ sudo apt-get -f install    
Run Code Online (Sandbox Code Playgroud)