java - 无法在 "/Library/Java/JavaVirtualMachines/..."处找到可执行文件

标签 java macos

我想安装 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/

相关文章:

java - java中selenium rc驱动程序的代理

Java RCP : Create Extension point from existing extension

java - 获得二次方程的准确根

macos - 如何列出 mac os x 上所有已安装的软件包和版本?

java - Map.merge 不会为 ArrayList 添加值

objective-c - 未收到 NSWindowWillCloseNotifications

macos - 运行 npm start 时出现错误 watchman--no-pretty get-sockname

macos - 如何在 MacOS 上使用旧版本的 Java 而不是最新的默认版本运行 jenkins?

macos - 强制应用程序在主显示器上的特定位置启动

java - java中的常量变量和方法