首页 > 解决方案 > 无法在“/Library/Java/JavaVirtualMachines/...”中找到可执行文件

问题描述

我想安装一个 NPM express 生成器:

sudo apt npm install -g express-generator

它抛出以下错误:

Unable to locate an executable at "/Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home/bin/apt" (-1)

我在此路径中安装了 Java(它不在 System/Library/ 中 - 也许这就是问题所在?):

'MacintoshSSD/库/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home'

我的 .bash_profile 看起来像这样:

export JAVA_HOME=$(/usr/libexec/java_home)

如果我检查 JAVA_HOME 它看起来不错:

echo $JAVA_HOME /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home

..和Java版本:

java --version openjdk 14.0.1 2020-04-14 OpenJDK Runtime Environment (build 14.0.1+7) OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

知道为什么它仍然可以找到可执行文件吗?

我在另一个线程中读到了预安装的 macOS Java 版本和 Orcalce Java 版本之间可能存在的冲突,请在此处输入链接描述,但我无法解决..

你能向我解释一下 java_home 和 JAVA_HOME 之间的区别吗?

标签: javamacos

解决方案


抱歉,我刚看到有什么问题...

Java中曾经有一个apt工具,但现在没有了。您的错误是使用 linux 命令行。在许多 linux 系统上,另一个名为apt的工具用于安装软件。

查看npm有关如何npm在 Mac 上安装的文档,因为有不同的方法可以做到这一点。

npm安装后,运行sudo npm install -g express-generatorapt这里没有)。

  • 错误信息的解释

    Java apt-tool 已在 JDK 8 中删除。但由于 JAVA_HOME/bin 通常不在 Mac 上的 PATH 上,因此苹果为 JAVA_HOME 下的所有命令提供了简单的包装器。仍然有这样一个包装器,apt它试图从您的 Java 安装中运行同名的程序。这就是您收到该错误消息的原因。

  • 预装的 macOS Java 版本和 Orcalce Java 版本之间的冲突:

    Apple已停止在 macOS 10.7 中预安装 Java,因此这应该不是问题。

  • java_home 和 JAVA_HOME 的区别:

    JAVA_HOME 是一个指向 Java 安装的环境变量。java_home是 macOS 中的一个实用程序,通过列出已安装的 Java 版本和用于 JAVA_HOME 的值,可以更轻松地正确设置 JAVA_HOME。


推荐阅读