如何在 Debian 11 (Bullseye) 上安装 Java 8?

coc*_*mac 13 debian java apt software-installation openjdk

这个答案解释了为什么它被删除。我对原因不感兴趣,相反,我需要安装它。该虚拟机专门用于我的 Java 应用程序,因此我对使用容器并不真正感兴趣。该答案提到您可以从 Stretch 存储库中获取它,但我不想创建 Franken-Debian,所以我不确定这是否是一个好主意。我需要从 OpenJDK 安装 Java 8 JRE。我安装了 Debian 11,并由于虚拟机管理程序错误*而使用了高级安装。

这是我安装它时所做的:

$ sudo apt update
...
$ sudo apt install openjdk-8-jre
Reading package lists... Done
Building dependency tree... Done
Building state information... Done
Package openjdk-8-jre is not available, but is referenced to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another sources
However the following packages replace it:
  nvidia-openjdk-8-jre

E: Package 'openjdk-8-jre' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

如果有帮助,这是我的/etc/apt/sources.list文件:

... commented lines ommitted ...

deb http://deb.debian.org/debian/ bullseye main non-free contrib
deb-src http://deb.debian.org/debian/ bullseye main non-free contrib

deb http://security.debian.org/debian/security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free

deb http://deb.debian.org/debian/bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/bullseye-updates main contrib non-free
Run Code Online (Sandbox Code Playgroud)

所以,我尝试寻找它......但它不在那里(我正在使用 Bullseye/11 - 当前的稳定版本)。有趣的是,它存在于 Debian Stretch 中。除了...我想使用 Bullseye,因为它很稳定,而不是 Stretch。那么我应该如何在Bullseye中安装OpenJDK 8 JRE呢?

我应该将 Stretch 存储库添加到我的吗sources.list他们建议不要这样做,那么获取 Java 8 的正确方法是什么?


*我的虚拟机管理程序要求在使用 UEFI 时grub-install具有该--removable标志。我不知道为什么需要这样做,但我必须使用高级安装来启用可移动标志。不过,这应该是无关紧要的。

Riz*_*zer 5

过去的 Debian 软件包的副本可以在http://snapshot.debian.org/上找到。

您可以在那里搜索 openjdk-8。最后可用的版本是 8u322-b06-1~deb9u1,记录在http://snapshot.debian.org/package/openjdk-8/8u322-b06-1%7Edeb9u1/ 您可以下载二进制包 (.deb)您的架构并使用sudo dpkg -i *.deb.

它是否有效取决于它所针对的库版本。8u312-b07-1(和其他旧版本)也可用。

或者,您可以访问该软件包的 Debian 跟踪页面:https://tracker.debian.org/pkg/openjdk-8。openjdk-8 仍然被列为不稳定版本(版本 8u312-b07-1)。如果您单击二进制包的链接,它们将引导您下载 deb 包的链接。

snapshot.debian.org 对于临时下载来说可以说更简单,因为它将 deb 文件放在一个位置(debian 软件包存储库在http://ftp.us.debian.org/debian/pool/main/o/中找到它们) openjdk-8/或其镜像站点)

snapshot.debian.org 还建议了配置sources.list 的说明。但是,如果包不太可能经常更新,那么手动下载 deb 文件可能会更简单。

  • 为快照配置“sources.list”条目只会使安装包及其依赖项变得更简单。这些条目与特定快照相关联,因此它们*永远不会*获得更新。 (2认同)

Eri*_*nil 5

自从 Oracle 更改 Java 许可以来,Bellsoft (非附属公司)在提供openJDK 安装程序方面做得非常出色。它们只是起作用,您可以选择:

  • JDK/JRE
  • Java 8 / 11 / 17 / 19
  • 有或没有 JavaFX
  • Windows / Debian / Redhat / Alpine / Solaris / macOs 安装程序

您一定会在https://bell-sw.com/pages/downloads/#/java-8-lts找到正确的安装程序。

如果您愿意,您可以安装多个 Java 版本。如果您需要在版本之间切换,您可能会对这个答案感兴趣。


coc*_*mac 2

前往领养*。进入releases页面,操作系统选择Linux,架构选择x64(假设你有AMD64/x64机器),版本选择8,包类型选择JRE(或者如果需要编译代码,选择JDK ),然后下载tar.gz文件。

提取文件:

$ tar xf OPENJDK8U-[something].tar.gz
Run Code Online (Sandbox Code Playgroud)

进入解压的目录,然后进入 bin 文件夹(我不小心得到了 JDK 而不是 JRE,所以我将使用它进行演示):

cd jdk8u[something]
cd bin
Run Code Online (Sandbox Code Playgroud)

查看版本是否正确:

$ ./java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Temurin)(build [something])
OpenJDK 64-Bit Server VM (Temurin)(build [something], mixed mode)
Run Code Online (Sandbox Code Playgroud)

让我们将其添加到我们的路径中:

export PATH=$PATH:/path/to/it/jdk8u322-b06/bin
Run Code Online (Sandbox Code Playgroud)

如果您希望它始终位于路径中,请将其添加到您的~/.bashrc文件中(当然,如果您使用的是 Bash)。

现在测试一下:

$ cd ~
$ java -version
...
Run Code Online (Sandbox Code Playgroud)

完毕!


*他们制作预编译的OpenJDK,他们以前是AdoptOpenJDK