【问题标题】:NetBeans 8.2 does not open on Mac OSNetBeans 8.2 无法在 Mac OS 上打开
【发布时间】:2020-01-24 07:52:58
【问题描述】:

我正在尝试在 Macbook Pro 上启动 NetBeans 8.2,但它不工作。

它显示启动画面,然后在一段时间后关闭,没有启动任何东西。

从命令行运行我可以看到这个错误:

Oct 02, 2017 7:40:28 PM org.netbeans.ProxyURLStreamHandlerFactory register
SEVERE: No way to find original stream handler for jar protocol
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.net.URLStreamHandler java.net.URL.handler accessible: module java.base does not "opens java.net" to unnamed module @7823a2f9
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:337)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:281)
    at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:175)
    at java.base/java.lang.reflect.Field.setAccessible(Field.java:169)
    at org.netbeans.ProxyURLStreamHandlerFactory.register(ProxyURLStreamHandlerFactory.java:82)
    at org.netbeans.JarClassLoader.<clinit>(JarClassLoader.java:141)
    at org.netbeans.MainImpl.execute(MainImpl.java:178)
    at org.netbeans.MainImpl.main(MainImpl.java:85)
    at org.netbeans.Main.main(Main.java:83)

看起来 Java 9 与它捆绑在一起并导致错误。该文档暗示 NetBeans 8.2 使用 JDK 8!?

如何使用我自己的java来运行NetBeans,或者如何让NetBeans启动而不出现这个错误?

【问题讨论】:

    标签: netbeans


    【解决方案1】:

    是的,NetBeans 8.2 确实使用 JDK 1.8,特别是不支持 JDK 1.9。

    OP 不清楚希望哪个版本的 Java 与 NetBeans 一起运行,但要使用的 NetBeans 版本由要使用的 Java 版本控制:

    [1] 对于 Java 8,使用 Netbeans 8.2。请注意,不支持 Java 9。您可以在此处下载与 JDK 8u141 捆绑在一起的 NetBeans 8.2 for Mac OS:

    http://www.oracle.com/technetwork/articles/javase/jdk-netbeans-jsp-142931.html

    一旦安装完成,就不需要对 Java 进行特定配置了。

    [2] 对于 Java 9,您必须使用 NetBeans 的开发版本。可以从 http://bits.netbeans.org/download/trunk/nightly/latest/ 下载,但请确保在单击 下载 之前从 平台 下拉列表中选择了 Mac OS X

    对于任何版本的 NetBeans,您都可以指定自己的 Java 版本,如下所示:

    • 启动 NetBeans 并从 工具 菜单中选择 Java 平台

    • 点击添加平台...按钮。

    • 完成向导以找到您要使用的 Java 版本。

    最后一点:使用不同的 JDK 同时安装和运行多个版本的 NetBeans 没有问题,通常是带有 JDK 1.8 的 NetBeans 8.2 和带有 JDK 1.9 的 NetBeans Dev Build。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    更新:

    如果 NetBeans 在启动时自行关闭,它可能具有无效的 JDK 路径。更改 NetBeans 使用的 JDK:

    • 找到文件 netbeans.conf。它应该在 NetBeans 安装目录下的 etc 目录中。

    • 在文本编辑器中编辑该文件。找到包含属性 netbeans_jdkhome 的行。在我的 Windows 10 安装中,它看起来像这样:

      netbeans_jdkhome="C:\Java\jdk1.8.0_121"

    • 更改该属性的值以指定所需 JDK 的路径,保存文件并重新启动 NetBeans。

    【讨论】:

    • 我什至没有 JDK 9。正如我所说,Mac 版本似乎随 JDK 9 一起发布,但不起作用。
    • @Renato 我不知道 Mac 附带 JDK9,但我同意堆栈跟踪看起来像 NetBeans 8.2 正在尝试使用 JDK 9。我更新了我的帖子以解释如何告诉 NetBeans 哪个JDK 在启动时使用。
    • 感谢您的指点。 conf文件中的这一行被注释掉了。当我将它设置为我最新的 JDK8 时,它起作用了。我不知道它是如何尝试使用 Java9 的……我确实安装了 EA 版本和 sdkman,但它们不应该对 NetBeans(或??)可见,因为我不使用它们。
    【解决方案2】:

    如 cmets 所述:

    我曾尝试将 netbeans_jdkhome in /Applications/NetBeans/NetBeans\ 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf 设置为指向 JDK 10,,但它仍然不起作用。

    我必须安装 JDK 8,并设置 netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home"

    卸载 JDK 10使用 JDK 8 对我有用,设置 netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home" 效果很好。

    【讨论】:

    • 这对我有用。重要的是要知道jdk1.8.0_181是你安装的Java 8的版本(我安装的是jdk1.8.0_211)。
    • netbeans_jdkhome 设置为指向 JDK 10 对您不起作用,因为 NetBeans 8.2 不支持任何 JDK 版本 > 8。
    【解决方案3】:

    macOS 10.13.5 JavaJDK 10 安装为“系统”JVM

    我能够安装 NetBeans,但无法使其正常工作。窗口会打开,单击“新建项目”或“新建文件”完全没有任何反应。

    通过进入配置文件能够使其工作(所有模块和服务器) /Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf

    并在文件底部编辑注释掉的 JDK 路径!

    干杯!

    【讨论】:

    • 使用了@skomisa 的 windows 建议,它适用于 mac!
    • 这在 MacOS 10.13.6 上对我有用。我最初下载的是 Netbeans 8.2 和 JDK 10.0.2。 Netbeans 已启动,但无法打开新文件、新项目。我曾尝试在 /Applications/NetBeans/NetBeans\ 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf 中设置 netbeans_jdkhome 以指向 JDK 10,但它仍然不起作用。我必须安装 JDK 8,并设置 netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home" 有效
    • @Yusuf 您是否删除了`netbeans_jdkhome`行之前的#
    • @jay 不需要删除#
    【解决方案4】:

    检查 Java JDK 是否安装在 Mac 上,NetBeans 8.2 确实使用 JDK 1.8(Java SE 8)

    /usr/libexec/java_home -V
    
    Matching Java Virtual Machines (2):
        12.0.1, x86_64: "Java SE 12.0.1"    /Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home
        1.8.0_211, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
    

    如果没有,只需安装(无需删除现有的 JDK) https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


    修改/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf

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

    【讨论】:

      【解决方案5】:

      对于 NetBeans 8.2,应使用 JDK 1.8。如果您在 MacBook 上安装了 JDK 1.9 或 JDK 10.0,则必须从您的计算机上将其卸载。

      【讨论】:

      • 正确,但不需要卸载其他的。只需在 Applications/NetBeans/NetBeans\ 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf 中修复指向JDK的路径就可以了
      猜你喜欢
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      相关资源
      最近更新 更多