为什么Eclipse不更新类?

从昨天开始,Eclipse不会更新我项目的.class文件。 例如, filename.java是最新的,但filename.class文件的修改日期是昨天。 过去工作得很好。 为什么会这样?

我会做的事情很少或仔细检查:

  1. 项目>清理您正在进行的项目。
  2. 项目>自动构建 – 打开,以便代码在工作区中重建已保存的更改。
  3. Window> Preferences并确保您的Installed JRE和Compilers与Java版本匹配

我建议做以下事情

  1. 确保Java构建器在Project -> Properties -> Builders菜单中处于活动状态
  2. 清理项目并重新构建它。
  3. 如果这不起作用,请通过文件资源管理器手动删除.class文件,然后再试一次。

我遇到这个问题时所遵循的步骤是:

  1. Project > Clean项目。
  2. 检查项目的属性。 确认所有依赖项(JRE系统库和Maven依赖项)都处于良好状态。 如果没有,请更新Maven依赖项或检查构建路径是否已正确配置。
  3. 检查Project > Build Automatically是否已打开。
  4. 尝试运行该项目; 它应该适当地重建项目。

确保Java构建器在Project -> Properties -> Builders菜单中处于活动状态

感谢@ ege-akpinar ,我发现由于某种原因,我的项目设置中的Java builder已经丢失了。 不幸的是,您不能再简单地添加构建器。 要解决此问题,您必须编辑项目根文件夹中的.project文件。 确保文件中存在以下行:

   org.eclipse.jdt.core.javabuilder      org.eclipse.jdt.core.javanature  

为了做出改变,我关闭了Eclipse。 之后,我检查了Builders首选项,清理并再次构建项目。 这一改变使它再次发挥作用。

当安装的JRE和编译器版本不匹配时,我遇到了类似的问题。

当我选择与编译器相同版本的JRE时,它工作正常。

也许你有旧的类文件? 当我将项目添加到Git时,目标目录似乎不同。 我在两个单独的文件夹中找到了重复的类文件 – 一组是旧的。 然而,旧的集合似乎是Tomcat的“goto”集。 我通过在根项目文件夹中搜索* .class并删除所有结果来发现并解决了该问题。 一旦我重建了这个项目 – 它完美地运作了。 (它还修复了我的“导出到战争”部署,它似乎也在拾取旧的类文件。)

删除项目的构建文件夹,然后清理项目(确保已启用“自动构建”选项)

另外要考虑的是,打开标记窗口。 如果您有Java Build Path问题,Eclipse将不会更新它们,直到您解决它们。

我遇到了同样的问题。 解决方案是Project Java版本和JRE系统库。

按照下面的步骤:

  1. 项目 – >属性 – > Java编译器[检查Java的版本例如1.6]
  2. 项目 – >属性 – > Java构建路径 – > JRE系统库[检查版本,例如java-6-oracle]

我有这个问题(在Eclipse Neon上)。 我必须在更新目标文件夹中的类之前检查JRE系统库:

在此处输入图像描述

希望这有帮助。

如果您添加然后删除 maven支持项目,就会发生这种情况。

Eclipse仍然会将已编译的文件放入target/classes而不是bin (您正在与webapps文件夹同步)。

要解决此问题,请转到项目属性并更改:

  • Java Build Path => Source => 输出文件夹