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

时间:2010-02-25 10:36:08

标签: java netbeans

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

导致这种情况的原因是什么?

15 个答案:

答案 0 :(得分:68)

如果是Netbeans,请尝试取消选中项目属性中的“编译保存”设置(Build - > Compiling)。这是在类似情况下帮助我的唯一原因。

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

答案 1 :(得分:32)

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

答案 2 :(得分:24)

这是由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替换为您的版本)。

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

答案 3 :(得分:5)

我也遇到了同样的错误,我做了干净的构建,并且工作正常。

答案 4 :(得分:1)

添加selenium-server-standalone-3.4.0.jar。它对我有用。 Download Link

答案 5 :(得分:1)

实现我自己的功能接口为我解决了这个问题(因此,不用使用java.util.function。*,只需使用所需的参数和返回类型创建您自己的单方法接口即可。

答案 6 :(得分:0)

在项目的“属性/运行”屏幕中禁用“保存时部署”。这最终对我有用。为什么地狱NetBeans搞砸了我的想法。

注意:我能够使用NetBeans中的右键单击编译它抱怨的文件。显然,当我使用Build& amp;时,它并没有真正编译它。编译,因为这没有任何错误。但之后,错误只是转移到另一个java类文件。因为它变灰了所以我无法编译。我还尝试删除NetBeans项目文件中的build和dist目录,但这也无济于事。

答案 7 :(得分:0)

将代码整理为maven模块。 完成后,从终端执行命令  $mvn installl
检查你的代码是否构建正常 最后在netbeans或eclipse中导入项目作为maven项目。

答案 8 :(得分:0)

更改类的包,你的文件可能是在错误的包中,当我从朋友那里复制代码时发生在我身上,它是默认包,而我的是另一个,因此netbeans因为它而无法编译。

答案 9 :(得分:0)

我在NetBeans 8.0.1中遇到了这个问题。有关项目已删除类中的问题的消息。删除〜/ .netbeans没有用。此外,我在所有项目中找到了对已删除类的任何引用,没有找到任何内容。我删除了构建类,一切。然后,当我再次启动Netbeans时,编译并神奇地在Run中显示消息并进入母编译类。我尝试取消选中"编译保存" Dime解决方案,并且有效,但它不实用。 最后,我的解决方案是编辑并强制重新编译母班。这样新的.class不包含消息,Run运行正常。

答案 10 :(得分:0)

只需检查包装,我可以提供的最简单的答案是您的包裹被错误标记(在课堂内)。

另外,你可能有一些奇怪的角色。尝试在记事本(或Gedit)中对代码进行白色刷新,然后使用IDE将其粘贴到新创建的类中。

答案 11 :(得分:0)

如果您正在使用Netbeans,请尝试点击“清理并生成”按钮,让它执行操作并再试一次。为我工作!

答案 12 :(得分:0)

我遇到了同样的问题。我的错误是包装。因此,我建议您先检查包名,以及该类是否在正确的包中。

答案 13 :(得分:0)

重新检查所有类中的包声明!

在NetBeans中观察到此行为,当包的某个类中的包声明引用不存在或错误的包时。 NetBeans通常会检测并突出显示此错误,但已知失败并误导性地报告包没有错误,但事实并非如此。

答案 14 :(得分:0)

我的一个netbeans项目也遇到了同样的问题。

检查是否在所有类上正确输入了程序包名称。我收到了相同的错误消息,因为我忘记输入某个类的包名了(从另一个项目复制过来的)。