netbeans中出现“不可编译的源代码”运行时异常

s8vozzvw  于 2022-11-10  发布在  其他
关注(0)|答案(6)|浏览(270)

我正在尝试帮助另一个使用Netbeans的开发者。当他在Netbeans(6.9.1)中运行或调试他的一些代码时,他得到了一个“不可编译的源代码”RuntimeException。我在Java方面相当有经验,但更习惯于IntelliJ,而且根本没有使用过Netbeans。
我已经做了一些谷歌搜索,似乎Netbeans将编译代码,即使有错误,然后抛出错误的RuntimeException。(相当糟糕的行为IMO,但我猜有些人会发现它有用。)我已经让他完全重建项目,没有编译错误,但RuntimeException似乎仍然发生。我假设他有一些坏的缓存类数据在Netbeans深处的某处。
2题:
1.什么是清除该高速缓存的最佳方法,这样我们就可以找到无法编译的代码在哪里?
1.有没有办法关闭这种行为,这样代码就不会运行/调试,除非一切都能编译,这样这些RuntimeException就不会被注入到代码中?
我在谷歌上搜索了很多,但还没有找到这两个问题的答案。
更新:更多信息:
1.关闭“compile on保存”选项会使问题消失。再次打开CoS会使异常再次出现。不幸的是,这不是一个修复方法,因为CoS是一个非常有用的选项。

  1. http://netbeans.org/bugzilla/show_bug.cgi?id=182009似乎是最接近的错误报告,但它已被关闭为“RESOLVED INCOMPLETE”。不幸的是,错误很难重现-异常发生在Java库代码中,当它调用第三方库时,因此在抛出异常时没有任何东西可以更改。代码将工作数周,然后突然开始抛出此错误,没有明显的原因。
    1.我们已经尝试手动删除整个构建目录-仍然没有修复。
ssgvzors

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

oaxa6hgo

oaxa6hgo2#

我在NB 7.0.1中遇到了同样的有线问题,我的hammer-IQ解决方案是在源代码中打错,运行NB时出现此错误(尽管出现了错误消息),然后缓存的类被成功删除。

6rvt4ljy

6rvt4ljy3#

我在使用Netbeans 7.2.1的Linux Mint Nadia上遇到了这个问题,但是对于该高速缓存位置可能在哪里感到困惑-我的缓存实际上位于

/home/USER/.cache/netbeans/7.2.1

而不是在.netbeans文件夹中。
如果您不确定该高速缓存在您的特定设置中的位置,只需转到Netbeans中的帮助〉关于菜单,它会告诉您正确的路径。

hfwmuf9z

hfwmuf9z4#

在意识到原因是其他发布的解决方案中的缓存不好后,我通过将文件复制到另一个目录,从NetBeans中删除它,然后重新添加来解决这个问题。

bmp9r5qi

bmp9r5qi5#

实际上,你不需要删除整个索引文件夹。当你打开netbeans,你的项目文件夹是活动的。Netbeans开始扫描文件,并创建临时项目文件夹(在索引文件夹中)。如果选中索引\段文件(它是一个文本文件,可以在记事本/(文本编辑器)中查看),你将能够识别代表你的项目的文件夹。2然后你可以删除那些文件夹并重新启动netbeans。

  • 活动项目是指在关闭Netbeans之前打开的项目。
nlejzf6q

nlejzf6q6#

在Windows 7和Netbeans 12上也有同样的问题。
缓存在这里:

C:\Users\<Username>\AppData\Local\NetBeans\Cache

,但删除缓存有时并没有帮助。更好的解决方案是重新编译有问题的类iIndiee.做一个小的更改(例如添加空间)并保存。

相关问题