Java 无法在MacOS版本Mojave 10.14.1上创建新的netbeans 8.2项目

Java 无法在MacOS版本Mojave 10.14.1上创建新的netbeans 8.2项目,java,netbeans,netbeans-8,macos-mojave,Java,Netbeans,Netbeans 8,Macos Mojave,我无法在MacOS Mojave 10.14.1上创建新的netbeans项目。当我选择文件>新建项目…-->未打开任何对话框,IDE日志如下所示: SEVERE [global] java.lang.ClassNotFoundException: javax.activation.DataContentHandlerFactory at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoad

我无法在MacOS Mojave 10.14.1上创建新的netbeans项目。当我选择文件>新建项目…-->未打开任何对话框,IDE日志如下所示:

SEVERE [global]
java.lang.ClassNotFoundException: javax.activation.DataContentHandlerFactory
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:222)
Caused: java.lang.ClassNotFoundException: javax.activation.DataContentHandlerFactory starting from ModuleCL@27506e4f[org.openide.awt] with possible defining loaders [ModuleCL@4994c66[org.netbeans.modules.xml.jaxb.api]] and declared parents [org.netbeans.MainImpl$BootClassLoader@36d4b5c, ModuleCL@364f78b6[org.netbeans.api.annotations.common]]
    at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:224)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ...<snip>...
    java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
[catch] at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
严重[全球]
java.lang.ClassNotFoundException:javax.activation.DataContentHandlerFactory
位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
位于org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:222)
原因:java.lang.ClassNotFoundException:javax.activation.DataContentHandlerFactory从开始ModuleCL@27506e4f[org.openide.awt]和可能的定义加载程序[ModuleCL@4994c66[org.netbeans.modules.xml.jaxb.api]]和声明的父项[org.netbeans.mainpl]$BootClassLoader@36d4b5c, ModuleCL@364f78b6[org.netbeans.api.annotations.common]]
位于org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:224)
位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
......
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
[catch]位于java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

好的,这里有一些细节,这样我就可以发布问题了。我使用自制软件安装netbeans IDE。它没有给出任何错误。我能够打开一个现有的项目(会打开一个对话框)。

感谢@skomisa指出问题所在

  • 我安装了“错误”的JDK版本——版本11.0.1,默认情况下netbeans被配置为使用它
  • 然后我安装了最新的“正确版本”: $brew tap caskroom/版本 $brew cask安装java8(jdk1.8.0_192)

  • 安装jdk1.8.0_192后,编辑/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/NetBeans.conf文件以设置NetBeans_jdkhome=“/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home”
  • 启动netbeans,您就可以开始了
    NetBeans 8.2不能与任何JDK>8一起工作,因此。。。[1] 您的机器上安装了多少版本的Java?[2] NetBeans实际使用的Java版本是什么?(帮助>关于和工具>Java平台)。我安装了错误的JDK版本。。。所以我尝试卸载它:Ralfs-$javac-version javac 11.0.1$brew cask uninstall java然后我安装了“正确版本”brew tap caskroom/versions。。。。brew cask安装java8并将$JAVA_HOME设置为jdk1.8.0_192的位置。netbeans正在使用其他东西。。。JAVA虚拟机;供应商=11.0.1;Java HotSpot(TM)64位服务器VM 11.0.1+13-LTS;Oracle Corporation Runtime=Java(TM)SE Runtime Environment 11.0.1+13-LTS Java Home=/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home安装jdk1.8.0192后,解决方案是编辑netbeans.conf文件以设置netbeans\u jdkhome=“/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home”