繁体   English   中英

在 MacOS Big Sur 上安装 Netbeans 8.2 找不到 JDK

[英]Installing Netbeans 8.2 on MacOS Big Sur no JDK found

我最近升级到 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> 退出终端并打开保存的文件。 它现在应该可以工作了。

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

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

这对我有用

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

在终端中运行此命令行:

酿造安装netbeans

这对我有用:从全新安装启动 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

重新启动计算机。

下载并安装Java jdk-8u271-macosx-x64重启电脑。

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

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

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

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

Hepoe 这有帮助。

这只是 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 并粘贴您在 STEP 1 中复制的路径

最后它应该是这样的——

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

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

问题似乎在于 BigSur 中的 /usr/libexec/java_home 似乎已损坏(请参阅此处: 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 命令时使用此版本。 您可以通过检查命令来确保这没问题

版本

  1. 让我们总结一下:

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

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

其实很简单! 但是真的很难搞清楚!

我会一步一步告诉它:

第 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:看,我现在已经注册了这个,只是为了确保帮助这里遇到同样问题的每个人,如果这真的帮助你,我真的很感激被投票为正确的解决方案?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM