Ale*_*lex 3 java macos netbeans macos-big-sur
我最近升级到 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)
Run Code Online (Sandbox Code Playgroud)
Javac 版本
javac 1.8.0_271
Run Code Online (Sandbox Code Playgroud)
我当前的$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
Run Code Online (Sandbox Code Playgroud)
在终端上粘贴上述命令。它打开 NetBeans。要在不再次键入命令的情况下使用 NetBeans,请在代码编辑器上保存上述命令并另存为NetBeans.command文件。
然后打开文件。在提示消息上单击确定。在终端上输入以下命令。
sudo passwd root
输入您的登录密码。
只需按Enter(您不必输入新密码)
键入su root并再次登录密码。
键入chmod +x <path of the file you saved with .command>。退出终端并打开保存的文件。它现在应该可以工作了。
小智 7
我有同样的问题。我不需要重新启动计算机。我只是改变了这一行:
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home"
Run Code Online (Sandbox Code Playgroud)
在文件 netbeans.conf 中,来自目录:
/Applications/NetBeans/NetBeans\ 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
Run Code Online (Sandbox Code Playgroud)
这对我有用
问题似乎是 /usr/libexec/java_home 在 BigSur 中似乎被破坏了(请参见此处: https: //developer.apple.com/forums/thread/666681)。
Netbeans 安装程序使用 /usr/libexec/java_home 检查 JDK 是否已安装,得到错误答案并因错误退出。
修复该行为的一种方法是修补安装程序。可以按如下方式完成:
假设 tmp 中没有名为“a”的目录:
打开 dmg,但不运行安装程序
在 shell 中输入以下命令:
pkgutil --expand /Volumes/NetBeans\ 8.2\ RC/NetBeans\ 8.2\ RC.pkg /tmp/a
(如果您的 Netbeans 安装程序具有不同的名称,请更改命令以反映安装程序的实际名称)
这将打开包,并将其内容复制到 /tmp/a 中。
编辑安装脚本。使用文本编辑器打开文件 /tmp/a/Distribution。
在第 13 行,替换:
var java_result = checkJavaVersion();
和
var java_result = true;
并保存文件。这将跳过对 Java 版本的检查。您有责任确保您的计算机上安装有 JDK 8 或以下版本,并且在使用 java 命令时使用此版本。您可以通过检查命令来确保一切正常
java版本
pkgutil --展平 /tmp/a ~/a.pkg
此时,您的主目录中有一个名为 a.pkg 的包。双击它,Netbeans 安装程序将完成其工作。