【问题标题】:JDK is installed on mac but i'm getting "The operation couldn’t be completed. Unable to locate a Java Runtime that supports apt." sudo apt updateJDK 已安装在 mac 上,但我收到“无法完成操作。无法找到支持 apt 的 Java 运行时”。 sudo apt 更新
【发布时间】:2021-02-18 20:09:08
【问题描述】:

我正在尝试在我的 MacOS 终端上运行命令 sudo apt update

我收到这条消息作为回应:The operation couldn’t be completed. Unable to locate a Java Runtime that supports apt. Please visit http://www.java.com for information on installing Java.

我看到了一个类似的问题here,但是即使我确保按照解决方案建议的方式安装 JDK,我仍然得到相同的响应。

我也尝试过粘贴

export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"

进入我的 .zshrc.save 文件夹,但没有运气。

当我在终端中运行java -version 时,这就是我得到的结果:

java version "15.0.2" 2021-01-19
Java(TM) SE Runtime Environment (build 15.0.2+7-27)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing)

【问题讨论】:

  • 可能是和 jdk 的老路径混淆了。您是否删除了旧的 jdk 或至少将其从路径和 JAVA_HOME 中删除。
  • 为清楚起见,对现已删除的答案的评论表明 OP 正在尝试遵循 Linux 指南 phoenixnap.com/kb/update-node-js-version,他们提到的 apt 指的是 debian/ubuntu 包manager,不是java的注解处理工具。

标签: java terminal apt


【解决方案1】:

20 年前,java 附带了一个名为 apt 的工具:Annotation Processor Tool。这个工具不久就被淘汰了。

update-node-js-version 所说的是一个完全不相关的工具:它是Advanced Package Tool,它是一个管理安装在 debian 和ubuntu - linux 发行版。您不不想在 mac 上运行它,因此您找到的说明完全没用:这就是如何在 linux 上更新 node-js。你的机器不是 linux。

四处搜索涉及brew 的答案,这在mac 上相当于apt。并且完全忘记 java - 这与 java 无关 - 这只是一个巧合。

【讨论】:

  • 谢谢!现在这更有意义了。为了参考之前没有看到的任何人,我正在尝试遵循本教程:phoenixnap.com/kb/update-node-js-version
  • 我们如何使用brew来代替sudo apt?
  • 这个问题没有提到“它”是什么,@FranciscoGutierrezRamirez
  • 这是我需要的答案 - 试图愚蠢地使用sudo apt install certbot,而需要使用brew install certbot。甚至 Java 也无法正确命名它们的东西?‍♂️
  • @ErmiyaEskandary 我认为 debian 团队不能只使用 3 个字母的首字母缩写词。是苹果和 Linux 发行版决定将 JDK 的 bin 目录中的 每个 工具堆积到您的路径中,而这从来都不是预期的设计。可悲的是,没有人应该为此负责。
【解决方案2】:

在你的 Mac 机器上安装 Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

为了让系统 Java 包装器找到这个 JDK,用符号链接它

sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

如果您需要在 PATH 中首先包含 openjdk,请运行:

echo 'export PATH="/usr/local/opt/openjdk/bin:$PATH"' >> ~/.profile

为了让编译器找到openjdk,你可能需要设置:

 export CPPFLAGS="-I/usr/local/opt/openjdk/include"

【讨论】:

    猜你喜欢
    • 2021-05-21
    • 2021-11-29
    • 2022-09-27
    • 2020-05-07
    • 1970-01-01
    • 2022-06-16
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多