无法使用JDK 11运行Apache Netbeans 11

时间:2019-07-17 21:14:48

标签: java netbeans netbeans-11

无论我做什么,我都无法让Netbeans 11与JDK 11一起使用。您能帮我吗?

请注意,JDK 8不会发生此问题。

将JDK 11下载并安装到C:\ Program Files \ Java \ jdk-11.0.4

将Netbeans 11下载并解压缩到C:\ Program Files \ netbeans

etc / netbeans.conf文件已被编辑以设置JDK主页:

  

netbeans_jdkhome =“ C:\ Program Files \ Java \ jdk-11.0.4”

尝试运行bin / netbeans64.exe时:

  

第一次:出现加载窗口,加载一会儿,然后   整个程序消失了。

     

第二次:不出现“正在加载”窗口。空的Java应用程序   出现。

     

如果我转到任务管理器并手动结束Netbeans进程,则可以   回到第一次。

有关下面列出的附件,请参考我在此处创建的问题: https://issues.apache.org/jira/browse/NETBEANS-2865

从PowerShell执行netbeans64.exe会将错误消息输出到控制台。可以在consoleOutput.txt附件中找到它们。

在netbeans.log附件中可以找到执行bin / netbeans64.exe --trace C:\ netbeans.log的结果。

作为参考,这是我遵循的教程:

https://www.youtube.com/watch?v=cxh-hVty09g

更新和解决方案

由于skomisa提供的答案,我终于可以正常工作了。

此问题是由Netbeans 11.0从早期版本导入设置引起的。我第一次运行Netbeans 11.0时出现一个弹出窗口,询问是否要从以前的版本导入设置。有关原因的更多详细信息,请参见skomisa的答案。

为解决此问题,我通过删除AppData中的整个文件夹删除了NetBeans 11的所有首选项文件。

  

C:\ Users \ Hunter \ AppData \ Roaming \ NetBeans \ 11.0 \

Skomisa的答案提到了尝试创建新的NetBeans 11解压缩版本并且不导入设置。实际上,我之前曾尝试过此操作,但从未看到弹出窗口询问您是否要导入。我认为这是因为此版本的NetBeans的用户首选项文件已经创建,并且仍位于AppData中。

这为您提供了两个可行的选择:

  1. 删除NetBeans 11.0的所有用户首选项文件。
  2. 在整个文件夹中搜索\u0000的实例并将其删除。

删除整个文件夹并从头开始似乎更容易也更令人满意。这样,我所有的用户首选项文件都使用了JDK和Netbeans接受的最新实践,并且希望没有挥之不去的遗留代码会在我下次更新时随机中断。

感谢大家的帮助!

1 个答案:

答案 0 :(得分:2)

您的问题似乎与错误报告的控制台日志输出中的IllegalArgumentException(“ 键包含代码点U + 0000 ”)有关。看来NetBeans正在尝试从早期版本的Netbeans中导入您的首选项,并且正在您的首选项文件中发现一些无效的空字符。

此错误先前已报告过,但仍未解决。参见Bug 271652 - IllegalArgumentException: Key contains code point U+0000

您的首选项文件都是XML文件(扩展名为 xml ),并且位于 C:\ Users \ user ID \ AppData \ Roaming \ NetBeans \ 11.0 \ config < / strong>。

在我的情况下,我唯一的NetBeans 11首选项文件名为 C:\ Users \ johndoe \ AppData \ Roaming \ NetBeans \ 11.0 \ config \ Editors \ text \ x-java \ Preferences \ org-netbeans-modules -editor-settings-CustomPreferences.xml ,但您可能有多个。

从控制台日志中的堆栈跟踪中,失败的调用是AbstractPreferences.getBoolean(),因此在您的首选项文件中包含Boolean的行上可能为null。但是,as this somewhat related SO answer suggests仅从所有首选项文件中盲目删除所有null。无论如何,在任何XML文件中都不应该存在空值。

解决问题的另一种方法是创建新的NetBeans 11解压缩版本,但不导入设置。

我想您甚至可以在现有的(破损的)NB 11安装中找到首选项文件并删除它们,尽管即使可行,这似乎也不令人满意。

一些相关点: