【问题标题】:How to install Java on Arch Linux如何在 Arch Linux 上安装 Java
【发布时间】:2012-11-06 12:58:19
【问题描述】:

根据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 找到你要找的包了吗?
  • 找到一个,extra/openjdk6 6.b24_1.11.4-1。我尝试了几种组合,但 pacman -S openjdk6 不是其中之一。这是一个旧版本,它似乎只给了我一个 JRE 而不是一个完整的 JDK。
  • 您需要哪种 java,用于运行软件或用于开发? jre 还是 jdk?

标签: java archlinux manjaro


【解决方案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 的值在它们之间切换

【讨论】:

    【解决方案2】:

    由于当前Oracle JDK的下载和安装过程,在linux环境下您可能无法轻松完成。因为很多以前支持的 JDK 包现在都不起作用了。如果您想在您的 arch-linux / manjaro 机器上安装 Oracle JDK-8this gist 将指导您。

    解决方法简述如下。

    1. 首先需要克隆相关的JDK git到你的PC。

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

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

      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

    【讨论】:

    • 请添加一些解释,因为链接可能有一天会失效
    • 感谢您的指导并更新了改进的答案。
    【解决方案3】:

    试试这个:

    pacman -S java7-openjdk
    

    【讨论】:

    • 这看起来令人鼓舞,但太糟糕了:Target not found :-(
    • 其实应该是pacman -S jdk7-openjdk。现在您可以将 7 替换为 8 或 9。
    【解决方案4】:

    获取您附近最好的镜子(查看this list);你甚至可以在archlinux website 上生成一个新的镜像列表。 然后运行# pacman -Syy; # pacman -Su; # pacman -S jdk8-openjdk(或jre8-openjdk,如果你只需要JRE)

    【讨论】:

    • +1,这是(几乎)我会这样做的方式。请注意,NOT 使用pacman -Syy,使用pacman -Syu。不支持部分升级。
    • 正确。您应该始终在 -Sy(或 -Syy)之后执行更新。
    • 你可以把所有这些压缩成# pacman -Syyu jdk8-opoenjdk
    【解决方案5】:

    试试下面的命令:

    pacman -S jre7-openjdk
    

    【讨论】:

      【解决方案6】:

      基于 armv6l 的 RB。检查here 你可以看到没有为armv6l 打包的openjdk 版本。

      这是我在 raspi 上的拱门展示的内容

         [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 ~]#
      

      【讨论】:

        【解决方案7】:

        只是一个快速的观察:

        当您更改存储库时,最好使用pacman -Syyu 进行更新,因为这会刷新所有包。

        【讨论】:

          【解决方案8】:

          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
          

          注销并登录,以便更新 PATH 并安装 java。

          【讨论】:

          • 请不要建议用户在官方 repo 中提供 OP 正在寻找的软件时立即安装非官方软件包。 OP 应该先刷新包列表pacman -Sy。 ilpianista 的回答是正确的。
          猜你喜欢
          • 2017-12-23
          • 2015-02-17
          • 1970-01-01
          • 2014-08-02
          • 1970-01-01
          • 1970-01-01
          • 2015-03-19
          • 2012-03-17
          • 2020-01-13
          相关资源
          最近更新 更多