netbeans中的java“不可编译源代码”运行时异常
我试图帮助另一个使用Netbeans的开发人员。当他在Netbeans(6.9.1)中运行或调试他的一些代码时,他会得到一个“不可编译的源代码”。我对Java很有经验,但更习惯IntelliJ,根本没有使用过Netbeans
我在谷歌上搜索了一下,似乎Netbeans即使有错误也会编译代码,然后在错误处抛出RuntimeException
。(在我看来,这是相当糟糕的行为,但我想有些人会觉得这很有用。)我让他完全重建了项目,没有编译错误,但RuntimeException
似乎仍在发生。我猜他在Netbeans的深处有一些糟糕的缓存类数据
2个问题:
- 清除缓存以便找出不可编译代码所在位置的最佳方法是什么李>
- 有没有办法关闭这种行为,这样代码就不会运行/调试,除非所有的东西都能编译,这样这些RuntimeException就不会被注入到代码中李>
我在谷歌上搜索了不少,但还没有找到这两个问题的答案
更新:更多信息:
- 关闭“保存时编译”选项会使问题消失。再次打开CoS会使异常再次出现。不幸的是,这不是一个解决方案,因为CoS是一个非常有用的选项李>
- http://netbeans.org/bugzilla/show_bug.cgi?id=182009似乎是最接近的错误报告,但它已被关闭为“已解决未完成”。不幸的是,这个错误很难重现——异常发生在Java库代码中,当它调用第三方库时,因此在抛出异常时,我们无法更改任何内容。代码将运行数周,然后突然开始抛出这个错误,没有明显的原因李>
- 我们已经尝试手动删除整个构建目录,但仍然无法修复李>
# 1 楼答案
我在使用Netbeans 7.2.1的Linux Mint Nadia上遇到了这个问题,但对于缓存位置可能在哪里——我的缓存实际上位于
而不是在。netbeans文件夹
如果不确定缓存在特定设置中的位置,只需转到帮助>;关于Netbeans中的菜单,它会告诉您正确的路径
# 2 楼答案
实际上,您不需要删除整个索引文件夹。 当您打开netbeans并且项目文件夹处于活动状态时。Netbeans开始扫描文件,并为所有活动项目创建临时项目文件夹(在索引文件夹中)。如果选中index\segments file(它是一个文本文件,可以在记事本/(文本编辑器)中查看),您将能够识别代表项目的文件夹。然后可以删除这些文件夹并重新启动netbeans
*活动项目是指在Netbeans关闭之前打开的项目