java.lang.RuntimeException:无法编译的源代码 - 是什么导致这个?

Mal*_*ker 51 java netbeans

这个错误很奇怪,我的代码编译得很好,我可以看到它没有问题,但是这个错误刚刚出现.我尝试重新启动NetBeans,没有其他异常信息.

是什么导致这个?

Dim*_*ime 70

如果是Netbeans,请尝试在项目属性(构建 - >编译)中取消选中"保存时编译"设置.这是在类似情况下帮助我的唯一事情.

资料来源:http: //forums.netbeans.org/post-45324.html


Cha*_*kar 31

我猜你使用的是IDE(比如Netbeans),它允许你运行代码,即使某些类不可编译.在应用程序的运行时期间,如果访问此类,则会导致此异常.

  • 实际上,这个答案和Dime的答案是正确的答案.我在Netbeans中遇到过这个问题,幸运的是我在这里找到了答案.这个问题背后的真正原因解释了我的答案,如何解决它已经得到了答案.我会赞同你的两个答案. (2认同)
  • 坦率地说,这几乎不是一个答案。它在描述“为什么”方面既不太准确,也完全忽略了“如何修复”部分。 (2认同)

kom*_*mer 26

它是由NetBeans在其缓存中保留一些旧的源代码和/或编译代码引起的,并没有注意到例如某些代码的依赖项(即引用的包)已经改变,并且文件的正确刷新/重新编译将按顺序进行.

解决方案是通过以下任一方式强制刷新:

a)定位和编辑有问题的源文件以强制重新编译(例如添加虚拟线,保存,删除它,再次保存),
b)进行干净的构建(有时会工作,有时不会),
c)禁用"编译保存"(不推荐,因为它可以使用IDE作为皇家PITA),或者
d)只需手动删除NetBeans缓存,强制重新编译.

至于如何删除缓存:

如果您使用的是旧版本的NetBeans:

  • 删除与项目相关的所有内容.netbeans/6.9/var/cache/index/(用您的版本替换6.9).

如果你使用的是新的:

  • 删除与项目相关的所有内容AppData/Local/NetBeans/Cache/8.1/index/(用您的版本替换8.1).

路径可能会有所不同,例如在不同的平台上,但这个想法仍然是相同的.

  • 谢谢,这正是我的问题的解决方案(也适用于jmonkey引擎)..在Windows中,转到%appdata%并找到.netbeans或.jmonkeyplatform :) (2认同)

UVM*_*UVM 6

我也得到了同样的错误,我做了干净的构建,它工作.