java - 无法在“/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 之间的区别吗?
解决方案
抱歉,我刚看到有什么问题...
Java中曾经有一个apt
工具,但现在没有了。您的错误是使用 linux 命令行。在许多 linux 系统上,另一个名为apt
的工具用于安装软件。
查看npm
有关如何npm
在 Mac 上安装的文档,因为有不同的方法可以做到这一点。
npm
安装后,运行sudo npm install -g express-generator
(apt
这里没有)。
错误信息的解释
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。
推荐阅读
- php - 仅将 WooCommerce 中特定产品类别中最后添加的商品保留在购物车中
- swift - Swift 中的低级动画
- python - 将 1D 列表转换为三角形 2D 列表
- javascript - 了解 HTML 表单元素的行为
- python-3.x - 需要 TypeError 类似字节的对象,而不是 str
- mongodb - mongodb聚合匹配两个字段
- javascript - Android Chrome 有没有办法记住我的页面的地理位置权限?
- javascript - 如何在没有管理员权限的情况下在 Windows 上安装 gatsby-CLI
- python - 我在尝试安装 gpt-2-simple 时收到“错误:无法为正则表达式构建轮子”。(视窗 10)
- haskell - 创建新处理程序后,清空 do 阻止 yesod