如何在Arch Linux上安装Java

18
根据https://wiki.archlinux.org/index.php/Java的说明,我可以通过调用命令在清洁的Arch Linux安装上安装Open JDK 7。
pacman -S jdk7-openjdk

但是在这样做时,我遇到了一个错误,显示

error: target not found: jdk7-openjdk

我已经在/etc/pacman.d/mirrorlist中注释掉了最近的Pacman存储库,并通过调用pacman -Syu运行了第一次更新,希望这会导致发现上面的软件包。

如何使用pacman在Arch Linux上安装Open JDK 7?

编辑:我正在运行一个带有ARM处理器的Raspberry Pi,并希望获得一个针对其硬件进行定制并使用操作系统硬件浮点支持的Java版本。


pacman -Ss openjdk 找到了你要找的软件包吗? - Reactormonk
它找到了一个名为extra/openjdk6 6.b24_1.11.4-1的版本。我尝试了几种组合,但是pacman -S openjdk6不是其中之一。这是一个旧版本,似乎只提供了JRE而不是完整的JDK。 - Jeroen Kransen
你需要哪个Java版本,用于运行软件还是开发?JRE还是JDK? - Kokizzu
8个回答

31

获取靠近您的最佳镜像(请检查此列表); 您甚至可以在archlinux网站上生成新的镜像列表。 然后运行# pacman -Syy; # pacman -Su; # pacman -S jdk8-openjdk(如果只需要JRE,则使用jre8-openjdk)。


5
+1,这(几乎)是我会做的方法。请注意,不要执行 pacman -Syy,使用 pacman -Syu。不支持部分升级。 - PlasmaPower
正确。在执行 -Sy(或 -Syy)之后,您应该始终执行更新。 - Andrea Scarpino
4
你可以将所有内容压缩成 # pacman -Syyu jdk8-opoenjdk - PlasmaPower

4

请尝试以下命令:

pacman -S jre7-openjdk

3

OpenJDK是多个Arch Linux软件包的依赖,因此仅安装Oracle的JDK是不够的。

首先必须卸载icedtea-web。

sudo pacman -R icedtea-web

然后构建Oracle JRE AUR软件包,

在安装OracleJRE之前,我必须手动删除openjdk6并忽略依赖项:

[argy@Freak jre]$ sudo pacman -Rdd openjdk6

安装OracleJRE

sudo pacman -U jre-7u2-1-i686.pkg.tar.xz

构建和安装JDK AUR软件包:

sudo pacman -U jdk-7u2-1-i686.pkg.tar.xz

登出并重新登录以更新路径并安装Java。


1
请不要建议用户立即安装非官方软件包,而OP正在寻找的软件在官方仓库中可用。OP可能只需要先刷新软件包列表 pacman -Sy。ilpianista的答案是正确的。 - galaux

3

一个快速的观察:

当你改变你的仓库时,使用 pacman -Syyu 更新是个好主意,因为这会刷新所有的软件包。


2

试试这个:

pacman -S java7-openjdk

看起来很令人鼓舞,但太糟糕了:“未找到目标” :-( - Jeroen Kransen
实际上应该是 pacman -S jdk7-openjdk。现在你可以将 7 替换为 8 或 9。 - user1663023

1

RB基于armv6l。检查这里,你会发现没有针对armv6l的打包版本的openjdk。

这是我在树莓派上的架构显示:

   [root@raspi ~]# pacman -Ss openjdk
    extra/openjdk6 6.b24_1.11.4-1
    Free Java environment based on OpenJDK 6.0 with IcedTea6 replacing binary plugs.
   [root@raspi ~]#

1

或者你可以完全跳过 pacman 并完全掌控:

  • https://adoptopenjdk.net/下载你需要的JDK版本的tar.gz

  • 解压缩档案:tar zxvf OpenJDKxxx.ta.gz

  • 将JDK移动到/optsudo mv jdk-xxx /opt

  • 更新PATH

export JAVA_HOME=/opt/jdk-xxx
export PATH=$PATH:$JAVA_HOME/bin
  • 测试:java -version

这样,您就可以安装多个不同版本的JDK,并通过更改PATH的值在它们之间切换。


0
由于当前下载和安装Oracle JDK的程序,您可能无法在Linux环境下轻松完成。因为许多以前支持的JDK包现在已经不起作用了。如果您希望在您的arch-linux/manjaro机器上安装Oracle JDK-8,this gist将为您提供良好的指导。
解决方案如下简要介绍:
  1. 首先需要将相关的JDK git克隆到您的PC上。

    cd ~/Downloads && git clone https://aur.archlinux.org/jdk8.git

  2. 现在您应该在Downloads文件夹中有一个jdk8文件夹。将您从Oracle下载的".tar.gz"文件移动到该文件夹中,如果它也在downloads文件夹中,并且我得到了正确的文件名,则命令应该是这样的。

    mv ~/Downloads/jdk-8u212-linux-x64.tar.gz ~/Downloads/jdk8/

  3. 现在我们将进入jdk8文件夹并编辑PKGBUILD文件。

    cd jdk8 && nano PKGBUILD

  4. 我们要更改的源代码行是.... "https://download.oracle.com/otn-pub/java/jdk/${pkgver}-${_build}/${_hash}/${_pkgname}-${pkgver}-linux-x64.tar.gz" 更改为我们现在在文件夹中拥有的文件名,jdk-8u212-linux-x64.tar.gz

  5. 保存并退出PKGBUILD文件。现在我们可以从该目录构建和安装。

    makepkg -sric

  6. 如果一切看起来都很顺利,您可以在完成后删除该目录。

    cd ~ && rm -r ~/Downloads/jdk8


请添加一些解释,因为链接可能会失效。 - Prince Vegeta
感谢您的指导和更新改进的答案。 - Ravindu Sachintha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接