netbeans中的"无法编译的源代码"RuntimeException

Nic*_*cue 26 java netbeans

我正在尝试帮助另一个使用Netbeans的开发人员.当他在Netbeans(6.9.1)中运行或调试他的一些代码时,他会得到一个"Uncompilable源代码" RuntimeException.我在Java方面经验丰富,但更习惯于IntelliJ,并且根本没有使用过Netbeans.

我已经完成了一些谷歌搜索,似乎Netbeans即使有错误也会编译代码,然后抛出RuntimeException错误.(相当糟糕的行为IMO,但我想有些人会发现它很有用.)我让他完全重建项目没有编译错误,但RuntimeException似乎仍然会发生.我假设他在Netbeans内部有一些糟糕的缓存类数据.

2个问题:

  1. 清除缓存的最佳方法是什么,以便我们可以找到无法编译代码的位置?
  2. 有没有办法关闭这种行为,所以代码将不会运行/调试除非一切都将编译,所以这些RuntimeException将不会被注入代码?

我已经google了一下,但还没有找到这些问题的答案.


更新:更多信息:

  1. 关闭"保存时编译"选项会使问题消失.再次打开CoS会带来异常.不幸的是,这不是一个修复,因为CoS是一个非常有用的选择.
  2. http://netbeans.org/bugzilla/show_bug.cgi?id=182009似乎是最接近的错误报告,但它已被关闭为"已解决不完整".遗憾的是,这个bug很难重现 - 当它调用第三方库时,Java库代码中会发生异常,所以在我们可以更改的异常情况下没有任何内容.代码将工作数周,然后突然开始抛出此错误,没有明显的原因.
  3. 我们已经尝试手动删除整个构建目录 - 仍然不是修复.

Nic*_*cue 35

我们终于得到了解决方案,但仍然不太清楚为什么会出现这种情况.当您启用Compile On Save时,Netbeans会生成第二组用于调试等的类文件.这些文件存储在$USER/.netbeans/var/cache/index/s*/java/*/classes

以某种方式(不确定如何)此目录可能会损坏或无法更新.

如果关闭netbeans,删除$USER/.netbeans/var/cache/index所有子目录并重新启动netbeans,则会清除缓存.如果您没有编译错误,那么您的问题应该在此时消失.

注意:$ USER是你的用户目录 - 在Windows 7上这通常是c:\Users\username,我想在Unix上它会是~username.

如果您遇到此问题,请投票,评论或添加信息:http://netbeans.org/bugzilla/show_bug.cgi?id = 182009

  • 嗨,我使用Windows 7 64位,我解决了删除$ USER/AppData/Local/NetBeans/Cache/<version> :) (6认同)

小智 5

我在NB 7.0.1中遇到了相同的有线问题,我的hammer-IQ解决方案是在源代码中输入错误,使用此错误运行NB(尽管出现错误消息)并且已成功删除缓存类.