Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.RuntimeException:不可编译的源代码-是什么导致了这种情况?_Java_Netbeans - Fatal编程技术网

java.lang.RuntimeException:不可编译的源代码-是什么导致了这种情况?

java.lang.RuntimeException:不可编译的源代码-是什么导致了这种情况?,java,netbeans,Java,Netbeans,这个错误很奇怪,我的代码编译得很好,我可以看出它没有问题,但是这个错误刚刚出现。我已尝试重新启动NetBeans,但没有其他异常信息 什么原因会导致这种情况?我猜您使用的是IDE(如Netbeans),它允许您运行代码,即使某些类不可编译。在应用程序运行期间,如果访问此类,将导致此异常。如果是Netbeans,请尝试取消选中项目属性(生成->编译)中的“保存时编译”设置。这是唯一在类似情况下帮助我的方法。在项目的属性/运行屏幕中禁用保存时部署。这就是最终对我有用的东西。我不明白为什么会把事情搞砸

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


什么原因会导致这种情况?

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

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

在项目的属性/运行屏幕中禁用保存时部署。这就是最终对我有用的东西。我不明白为什么会把事情搞砸


注意:我能够编译它抱怨在NetBeans中使用右键单击的文件。显然,当我使用Build&Compile时,它并没有真正编译它,因为它没有给出任何错误。但是在那之后,错误就转移到另一个java类文件。我无法编译,因为它是灰色的。我还尝试删除我的NetBeans项目文件中的build和dist目录,但也没有起到任何作用。

这是因为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)

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

我也遇到了同样的错误,我做了干净的构建,并且成功了。

将代码组织为maven模块。 完成后,从终端运行命令
$mvn installl

检查您的代码是否构建良好。

最后在netbeans或eclipse中将项目导入为maven project。

更改类的包,您的文件可能位于错误的包中,当我从朋友那里复制代码时,我遇到了这种情况,它是默认包,而我的是另一个包,因此netbeans无法编译,因为它。

我在netbeans 8.0.1中遇到了这个问题。已删除项目类中有关问题的消息。删除~/.netbeans无效。此外,我在所有项目中都查找了对已删除类的引用,但未找到任何内容。我删除了构建类,一切。然后,当我再次启动Netbeans时,compile会神奇地将消息显示在Run中,并放入编译后的母类中。我尝试了取消选中“保存时编译”的Dime解决方案,效果不错,但不实用。
最后,我的解决方案是编辑并强制重新编译母类。通过这种方式,新的.class不包含消息,运行正常。

只需检查包装,我能提供的最简单的答案是您的包(在类中)被错误标记


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

如果您使用的是Netbeans,请尝试点击“清理并生成”按钮,让它执行此操作,然后重试。为我工作

添加selenium-server-standalone-3.4.0.jar。这对我有用。
我也有同样的问题。我的错误是包装。因此,我建议您首先检查包名以及类是否在正确的包中。

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


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

我的一个NetBeans项目也有同样的问题


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

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

读取堆栈跟踪,它会告诉您问题发生的位置。这不是问题所在。我大约每个月会收到一次这样的消息,我必须打开项目中的每个文件,添加一个空格或一个空行,然后保存。这与$user/.netbeans/var/cache/index/s*/java/*/classes中的缓存用户文件有关注意:这里的答案中的一些信息要么是误导性的,要么是过时的,要么是不完整的。我冒昧地给出了一个典型的答案——这是我在历史上最接近准确的答案。Clean netbeans cache和tryI在过去的一个小时里一直在试图找出这个错误。。。谢谢你,钱德鲁先生。关于你的解释,这是否意味着如果我在运行时编辑有问题的类,就会发生这个错误