我想安装 NPM Express 生成器:
sudo apt npm install -g express-generator
它抛出以下错误:
无法在“/Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home/bin/apt”中找到可执行文件(-1)
我在此路径中安装了 Java(它不在 System/Library/中 - 也许这就是问题所在?):
'MacintoshSSD/Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home'
我的 .bash_profile 看起来像这样:
导出 JAVA_HOME=$(/usr/libexec/java_home)
如果我检查 JAVA_HOME 它看起来很好:
回显$JAVA_HOME
/Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home
.. 和 Java 版本:
java --版本
openjdk 14.0.1 2020-04-14
OpenJDK 运行时环境(版本 14.0.1+7)
OpenJDK 64位服务器VM(构建14.0.1+7,混合模式,共享)
知道为什么它仍然可以找到可执行文件吗?
我在另一个帖子中读到了有关预装 macOS Java 版本和 Orcalce Java 版本之间可能存在冲突的信息 enter link description here但我无法解决..
你能向我解释一下 java_home 和 JAVA_HOME 之间的区别吗?
最佳答案
抱歉,我刚刚才发现出了什么问题......
Java 中曾经有一个 apt
工具,但现在已经消失了。你的错误是使用linux命令行。在许多 Linux 系统上,使用另一个名为 apt 的工具来安装软件。
查看 npm
文档,了解如何在 Mac 上安装 npm
,因为有不同的方法可以实现。
安装npm
后,运行sudo npm install -gexpress-generator
(此处没有apt
)。
错误消息的说明
Java apt-tool 是 removed在 JDK 8 中。但是由于 JAVA_HOME/bin 通常不在 Mac 上的 PATH 上,因此苹果为 JAVA_HOME 下的所有命令提供了简单的包装器。仍然有这样一个
apt
的包装器,它尝试运行 Java 安装中的同名程序。这就是您收到该错误消息的原因。预安装的 macOS Java 版本与 Orcalce Java 版本之间的冲突:
苹果stopped pre-installing Java in macOS 10.7所以这不应该是一个问题。
java_home 和 JAVA_HOME 之间的区别:
JAVA_HOME 是一个指向您的 Java 安装的环境变量。
java_home
是 macOS 中的一个实用程序,通过列出已安装的 Java 版本和用于 JAVA_HOME 的值,可以更轻松地正确设置 JAVA_HOME。
关于java - 无法在 "/Library/Java/JavaVirtualMachines/..."处找到可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61847716/