不管我做什么,我都不能让Netbeans 11和JDK 11一起工作,你能帮我吗?
请注意,JDK 8没有出现此问题。
下载并安装JDK 11到C:\Program \Java\JDK-11.0.4
下载并解压缩Netbeans 11到C:\Program \netbeans
已经编辑了etc/netbeans.conf文件以设置JDK主文件:
netbeans_jdkhome="C:\Program \Java\JDK-11.0.4“
当尝试运行bin/netbeans64.exe时:
第一次:加载窗口出现,加载一点,然后整个程序消失。 第二次:加载窗口不出现。出现一个空的Java应用程序。 如果我转到任务管理器并手动结束Netbeans进程,我可以回到第一次。
中列出的附件,请参阅我在这里创建的问题: https://issues.apache.org/jira/browse/NETBEANS-2865
从PowerShell执行netbeans64.exe会将错误消息输出到控制台。它们可以在consoleOutput.txt附件中找到。
执行bin/netbeans64.exe -跟踪C:\netbeans.log的结果可以在netbeans.log附件中找到。
作为参考,这是我遵循的教程:
https://www.youtube.com/watch?v=cxh-hVty09g
更新与解决方案
多亏了斯库米萨提供的答案,我终于开始工作了。
此问题是由Netbeans 11.0从以前版本导入设置引起的。当我第一次运行Netbeans 11.0时,出现了一个弹出窗口,询问我是否想从以前的版本导入我的设置。有关原因的更多细节,请参阅skomisa的回答。
为了解决这个问题,我删除了NetBeans 11的所有首选项文件,删除了AppData中的整个文件夹。
C:\Users\Hunter\AppData\Roaming\NetBeans\11.0\
Skomisa的回答提到试图创建一个新的解压缩版本的NetBeans 11,而不是导入设置。我以前确实尝试过这个,但是没有收到弹出窗口询问您是否要导入。我认为这是因为这个版本的NetBeans的用户首选项文件已经创建,并且仍然处于AppData中。
这给你留下了两个可行的选择:
\u0000实例并删除它们。从零开始移除整个文件夹似乎更容易,也更令人满意。这样,我所有的用户偏好文件都使用了JDK和Netbeans接受的最新实践,希望下次更新时不会有遗留代码随机中断。
谢谢大家的帮助!
发布于 2019-07-18 02:51:24
您的问题似乎与错误报告的控制台日志输出中的IllegalArgumentException (“键包含代码点U+0000")有关。看起来,Netbeans正在尝试从NetBeans的早期版本中导入您的首选项,并且正在您的首选项文件中找到一些无效的空字符。
这是以前报告过的错误,但仍未解决。见Bug 271652 - IllegalArgumentException: Key包含代码点U+0000。
您的首选项文件都是XML文件(扩展名为xml),位于C:\user\user下的各种目录中。
在我的例子中,我对NetBeans 11的唯一首选文件是名为NetBeans,但您可能有多个。
从控制台日志中的堆栈跟踪中,失败的调用是AbstractPreferences.getBoolean(),因此null可能位于首选项文件中包含Boolean的一行中。但是,因为这与此相关,所以答案表明只是盲目地从所有首选项文件中删除所有空值。无论如何,任何XML文件中都不应该存在Nulls。
解决问题的另一种方法是创建一个新的解压缩版本的NetBeans 11,但不要导入您的设置。
我想您甚至可以在现有的(已损坏的) NB 11安装中找到首选项文件并删除它们,尽管这似乎是一种不能令人满意的方法,即使它可以工作。
以下几个相关问题:
IllegalArgumentException只出现在JDK版本的>= 9中,这是因为JDK错误修复,但这是一件好事。详情请参见()和remove()应该不允许使用空控制字符'\u0000‘作为键。。NetBeans 8.x没有出现问题,因为您可能从未导入任何首选项文件,但是即使您是,IllegalArgumentException也不会因为JDK-8075156修复的Java而发生。https://stackoverflow.com/questions/57084144
复制相似问题