4

我最近升级到 MacOS Big Sur,尝试打开 NetBeans 8.2 时出现错误

缺少 JDK,它是运行某些 NetBeans 模块所必需的。请使用 --JDK home 命令行选项指定 JDK 安装

我尝试将 JAVA_HOME 设置为 JDK 路径,但没有成功。所以,我卸载了 Netbeans 和 JDK 并重新下载了 Netbeans 8.2 和 JDK 8。

现在在尝试设置 Netbeans 时,它显示:

无法安装 NetBeans IDE。在您的计算机上找到 Java (JRE),但需要 JDK 8 或更高版本。请从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载并安装 JDK 8 的最新更新,然后重新启动 NetBeans 安装。

Java版本

java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

Javac 版本

javac 1.8.0_271

我当前的$JAVA_HOME设置为/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home

我还尝试使用 JDK 14 和 15 安装 NetBeans 11 和 12,但它给出了相同的错误

编辑:以下是唯一对我有用的解决方案。

/Applications/NetBeans/Apache\ NetBeans\ 12.1.app/Contents/Resources/NetBeans/netbeans/bin/netbeans --jdkhome /Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
  1. 将上述命令粘贴到终端上。它会打开 NetBeans。要在不再次键入命令的情况下使用 NetBeans,请将上述命令保存在代码编辑器中并另存为NetBeans.command文件。

  2. 然后打开文件。在提示的消息上单击确定。在终端上键入以下命令。

    sudo passwd root

  3. 输入您的登录密码。

  4. 只需按Enter(您不必输入新密码)

  5. 再次输入su root和您的登录密码。

  6. 键入chmod +x <path of the file you saved with .command>。退出终端并打开保存的文件。它现在应该可以工作了。

4

6 回答 6

9

我有同样的问题。我不需要重新启动计算机。我只是改变了这一行:

netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home"

在文件 netbeans.conf 中,来自目录:

/Applications/NetBeans/NetBeans\ 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf

这对我有用

于 2020-11-17T17:32:52.823 回答
5

当我可以安装 Netbeans 时,我遇到了同样的问题。这对我有用:

在终端中运行此命令行:

冲泡安装netbeans

于 2021-01-22T07:49:13.520 回答
3

问题似乎是 /usr/libexec/java_home 在 BigSur 中似乎被破坏了(见这里:https ://developer.apple.com/forums/thread/666681 )。

Netbeans 安装程序检查是否使用 /usr/libexec/java_home 安装了 JDK,得到错误答案并以错误退出。

修复该行为的一种方法是修补安装程序。可以按如下方式完成:

假设 tmp 中没有名为“a”的目录:

  1. 打开 dmg,但不要运行安装程序

  2. 在 shell 中给出以下命令:

pkgutil --expand /Volumes/NetBeans\ 8.2\ RC/NetBeans\ 8.2\ RC.pkg /tmp/a

(如果您的 Netbeans 安装程序名称不同,请更改命令以反映安装程序的实际名称)

这将打开包,并将其内容复制到 /tmp/a 中。

  1. 编辑安装脚本。使用文本编辑器打开文件 /tmp/a/Distribution。

  2. 在第 13 行,替换:

var java_result = checkJavaVersion();

var java_result = true;

并保存文件。这将跳过对 Java 版本的检查。您有责任确保您的机器上有 JDK 8 或以下版本,并且在使用 java 命令时使用此版本。您可以通过检查命令来确保没问题

java版本

  1. 让我们总结一下:

pkgutil --flatten /tmp/a ~/a.pkg

此时,您的主目录中有一个名为 a.pkg 的包。双击它,Netbeans 安装程序将完成它的工作。

于 2021-04-09T07:28:44.650 回答
2

这对我有用:从全新安装启动 Java。

sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/Java/JavaVirtualMachines
sudo rm -rf /Library/Application\ Support/Oracle/Java/
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane

重新启动计算机。

下载并安装 Javajdk-8u271-macosx-x64 重启计算机。

从 Appache Netbeans 下载并安装 NetBeans 12.1(抱歉,Netbeans 8.2 不再适合我,虽然我一开始尝试过)。

打开 Netbeans,接受导入 Netbeans 8.2 首选项。转到 Netbeans 菜单下的 Netbeans 首选项窗格。单击 Java 图标,然后单击 Java Shell... 等待 Netbeans 响应。接受任何对话框(我忘记了,但出现了一些对话框)。Netbeans会抱怨找不到jdk;退出 Netbeans。/Applications/NetBeans/NetBeans 12.1.app/Contents/Resources/NetBeans/etc/netbeans.conf使用 bbedit 或类似工具打开文件。查找并编辑此行:

netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home"

保存存档。打开 Netbeans;转到 Netbeans 菜单下的 Netbeans 首选项窗格。单击 Java 图标,然后单击 Java Shell。它可能会停留在空白方块上。关闭首选项窗格;转到工具菜单:您将看到 Java 平台菜单,进入它。你有,所有的Java安装。

Hepoe 这有帮助。

于 2020-11-17T03:48:41.870 回答
1

它只是netbeans jdk主路径的问题,不用担心试试这个 -

第 1 步 - 打开终端

/usr/libexec/java_home

输出 - /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

复制此路径,因为您必须将其保存在 netbeans.conf 中

第 2 步 - 在终端使用这个

nano /Applications/NetBeans/NetBeans\ 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf

搜索 netbeansjdkhome 并粘贴您在步骤 1 中复制的路径

最后它应该看起来像这样 -

netbeansjdkhome="/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home"

第 3 步 - 重新启动并打开 Netbeans 8.2,它现在可以正常工作了。

于 2020-11-29T21:53:55.627 回答
0

其实很简单!但这真的很难弄清楚!

我会一步一步告诉它:

第 1 步:首先,您必须确保像这样设置 JAVA_HOME(取决于您安装的版本:

export JAVA_HOME=$(/usr/libexec/java_home -v "1.8.0_275")

如果您不确定您安装的 jdk 版本,只需执行以下操作:

/usr/libexec/java_home -V

第 2 步:好的,现在您必须从 apache 的网站下载您想要安装的任何 netbeans 版本。我需要 11.1。

第 3 步:打开 dmg 文件并将 pkg 文件复制到您的主目录(您可以使用 finder 或任何您想要的)。

第 4 步:在您的主目录上执行以下命令(确保将 youruser 和 yourpkgfilename.pkg 替换为正确的信息):

/usr/bin/sudo -E -- /usr/bin/env LOGNAME=youruser USER=youruser USERNAME=youruser /usr/sbin/installer -pkg yourpkgfilename.pkg -target /

你应该得到这个输出:

installer: Package name is Apache NetBeans IDE 11.1
installer: Installing at base path /
installer: The install was successful.

PS:看,我现在就注册了这个,只是为了确保在这里帮助大家解决同样的问题,如果这真的对你有帮助,我真的很感激被选为正确的解决方案,好吗?

于 2020-12-05T02:03:44.820 回答