Eclipse不能将Java文件编译成类文件。

23

我不知道为什么,但从今天开始Eclipse不会将.java文件编译成.class文件。 我按下“运行”按钮,而Eclipse只尝试运行程序而没有先编译它,所以我一直收到这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError

1
请查看菜单“项目/自动构建”。该设置是否已激活? - user573215
已启用。但我收到了相同的错误。 - Marco Micheli
你使用的是哪个版本的Eclipse?Java Facet是否已启用(您是否在项目图标上看到了一个小“J”)?您是否使用任何构建工具,如Maven或Gradle?您是否在项目资源管理器中看到包结构? - dr jerry
您的项目中是否有任何错误?如果是,则请告诉我错误图标是(x)还是(!) - Lai
错误图标是! - Praveen.883
23个回答

41

打开问题视图:Window -> Show View -> Problems,如果有错误,请修复。

如果项目中有任何问题,Eclipse将拒绝编译。


3
这对我非常有帮助。不用花费数小时来寻找原因。 - Dejell
2
昨天我的所有课程都能编译,但今天却不能。我按照建议操作后出现了309个错误。我知道今天不可能有309个错误,所以希望能得到更多关于哪些错误需要解决的建议。 - EngineerWithJava54321
你救了我的命!(还节省了很多时间) - Livio D.P.

16

关闭项目 -> 打开项目 -> 清理 -> 刷新

希望这对其他人有所帮助


1
天啊!是的,关闭/打开项目帮了我,其他所有解决方案都没有起作用...现在Eclipse已经删除了所有的类文件,并进行了全新的构建... - mondjunge

13

如果“由于某些原因”你的项目在Eclipse中的名称旁边出现了红色图标,那么这个问题就会发生。解决方法是保存项目文件夹,删除Eclipse中的项目,然后在Eclipse中创建项目并将之前保存的所有文件复制过去。


2
可能是什么原因? - Chinni
1
这对我有用,但像Marco一样,我想知道为什么会发生这种情况(而且经常发生)。 - Nix
我经常使用这个技巧。不知何故,我以为我已经做了,但实际上没有... - gsakthivel

10
我使用Eclipse Luna时遇到了这个问题,项目中的Java构建器不知何故丢失了。请在您的.project文件中验证是否有类似以下内容:
<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>     
</buildSpec>

您可以从项目属性 -> 构建器中配置构建器。

1
我曾经遇到过这样的问题,当我给一个项目添加了Scala nature后,又卸载了Scala IDE...该项目只包含Java文件,所以我认为应该没问题,但它依赖于Scala builder来构建Java文件。显然,Eclipse认为在Problems视图中不值得提及缺少builder;我想这种情况并不经常发生。 - Theodore Murdock

7
当我遇到这个完全相同的问题时,它的原因总是相同的,解决方案对我来说始终有效。它是由于项目的Java构建路径中缺少一个jar文件导致的,并且在项目图标上显示为红色感叹号装饰。要解决此问题,请转到Project | Properties | Java Build Path,单击Libraries选项卡,然后删除或修复所有缺少的jar文件的路径。如果您的项目配置为自动重建,则应该在应用更改后立即开始构建。

enter image description here


4
当构建类时,Eclipse需要清除输出文件夹。该文件夹位于“项目属性-> Java构建路径->默认输出文件夹”下。它可能与在Eclipse首选项下找到的一般输出文件夹名称不同。如果由于某种原因无法删除此输出文件夹(例如,在Windows上,当在此位置打开shell时),则会将项目标记为已损坏(如Marco Micheli所述),然后不会构建类。您只需确保可以删除输出文件夹即可。

4

是的,我曾遇到过这个问题。因为Eclipse无法构建项目,出现了Build Path错误。检查一下你的外部jar文件是否没有显示任何错误。删除缺失的或显示红色的Jar文件。从正确的路径或位置添加一个新的。如果所有错误都消失了,那么在项目bin文件夹中将创建一个类文件,然后"could not load main class"错误也将被解决。


3
  1. 你的项目可能会出现错误,或者像上面提到的其他原因。
  2. 或者你可能像我一样是个傻瓜,把源代码移动到了其他文件夹,但没有在项目构建属性中更新源路径。在这种情况下,它不会给出任何错误,也不会生成类文件。请检查这一点。

前往 项目属性 -> Java构建路径 -> 源

添加或链接新的源文件夹位置。


1

我曾遇到这个问题,试过清理、手动构建、打开、关闭项目、删除等等,但都无效,经过4个小时的努力,我找到了一个解决方法。

  1. 请将整个项目文件夹制作成RAR、ZIP格式或复制备份,以防操作失误,OK,现在:

  2. 清理项目。它清除了输出文件夹中的所有类文件,但在进行清理和构建后不会生成类文件(但我们已经知道了这一点)

  3. 删除项目(警告:确保未选择删除内容,否则您的项目将消失)。对我来说,它显示了代码混合、Hibernate不同步等信息)

  4. 关闭myEclipse

  5. 重新启动计算机。

  6. 打开myEclipse

  7. 使用“从文件夹或归档中导入项目”选项导入项目,而不是“将现有项目导入工作区”选项。

  8. Myeclipse开始构建类文件,我不知道为什么,但对我有效,希望能帮助其他人。


1

请清理所有项目!这将删除所有旧的类文件,因此Eclipse将被强制重新生成它们。


请发布 scee 或其它主要内容,您是否更改了项目构建路径或 JDK? - Stimpson Cat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接