我正在尝试帮助另一个使用Netbeans的开发者。当他在Netbeans(6.9.1)中运行或调试他的一些代码时,他得到了一个“不可编译的源代码”RuntimeException
。我在Java方面相当有经验,但更习惯于IntelliJ,而且根本没有使用过Netbeans。
我已经做了一些谷歌搜索,似乎Netbeans将编译代码,即使有错误,然后抛出错误的RuntimeException
。(相当糟糕的行为IMO,但我猜有些人会发现它有用。)我已经让他完全重建项目,没有编译错误,但RuntimeException
似乎仍然发生。我假设他有一些坏的缓存类数据在Netbeans深处的某处。
2题:
1.什么是清除该高速缓存的最佳方法,这样我们就可以找到无法编译的代码在哪里?
1.有没有办法关闭这种行为,这样代码就不会运行/调试,除非一切都能编译,这样这些RuntimeException就不会被注入到代码中?
我在谷歌上搜索了很多,但还没有找到这两个问题的答案。
更新:更多信息:
1.关闭“compile on保存”选项会使问题消失。再次打开CoS会使异常再次出现。不幸的是,这不是一个修复方法,因为CoS是一个非常有用的选项。
- http://netbeans.org/bugzilla/show_bug.cgi?id=182009似乎是最接近的错误报告,但它已被关闭为“RESOLVED INCOMPLETE”。不幸的是,错误很难重现-异常发生在Java库代码中,当它调用第三方库时,因此在抛出异常时没有任何东西可以更改。代码将工作数周,然后突然开始抛出此错误,没有明显的原因。
1.我们已经尝试手动删除整个构建目录-仍然没有修复。
6条答案
按热度按时间ssgvzors1#
我们最终找到了一个解决方案,但仍然不太清楚为什么会出现这种情况。当您激活Compile On保存时,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
oaxa6hgo2#
我在NB 7.0.1中遇到了同样的有线问题,我的hammer-IQ解决方案是在源代码中打错,运行NB时出现此错误(尽管出现了错误消息),然后缓存的类被成功删除。
6rvt4ljy3#
我在使用Netbeans 7.2.1的Linux Mint Nadia上遇到了这个问题,但是对于该高速缓存位置可能在哪里感到困惑-我的缓存实际上位于
而不是在.netbeans文件夹中。
如果您不确定该高速缓存在您的特定设置中的位置,只需转到Netbeans中的帮助〉关于菜单,它会告诉您正确的路径。
hfwmuf9z4#
在意识到原因是其他发布的解决方案中的缓存不好后,我通过将文件复制到另一个目录,从NetBeans中删除它,然后重新添加来解决这个问题。
bmp9r5qi5#
实际上,你不需要删除整个索引文件夹。当你打开netbeans,你的项目文件夹是活动的。Netbeans开始扫描文件,并创建临时项目文件夹(在索引文件夹中)。如果选中索引\段文件(它是一个文本文件,可以在记事本/(文本编辑器)中查看),你将能够识别代表你的项目的文件夹。2然后你可以删除那些文件夹并重新启动netbeans。
nlejzf6q6#
在Windows 7和Netbeans 12上也有同样的问题。
缓存在这里:
,但删除缓存有时并没有帮助。更好的解决方案是重新编译有问题的类iIndiee.做一个小的更改(例如添加空间)并保存。