为什么Eclipse不更新类?
从昨天开始,Eclipse不会更新我项目的.class
文件。 例如, filename.java
是最新的,但filename.class
文件的修改日期是昨天。 过去工作得很好。 为什么会这样?
我会做的事情很少或仔细检查:
- 项目>清理您正在进行的项目。
- 项目>自动构建 – 打开,以便代码在工作区中重建已保存的更改。
- Window> Preferences并确保您的Installed JRE和Compilers与Java版本匹配
我建议做以下事情
- 确保Java构建器在
Project -> Properties -> Builders
菜单中处于活动状态 - 清理项目并重新构建它。
- 如果这不起作用,请通过文件资源管理器手动删除
.class
文件,然后再试一次。
我遇到这个问题时所遵循的步骤是:
-
Project > Clean
项目。 - 检查项目的属性。 确认所有依赖项(JRE系统库和Maven依赖项)都处于良好状态。 如果没有,请更新Maven依赖项或检查构建路径是否已正确配置。
- 检查
Project > Build Automatically
是否已打开。 - 尝试运行该项目; 它应该适当地重建项目。
确保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系统库。
按照下面的步骤:
- 项目 – >属性 – > Java编译器[检查Java的版本例如1.6]
- 项目 – >属性 – > Java构建路径 – > JRE系统库[检查版本,例如java-6-oracle]
我有这个问题(在Eclipse Neon上)。 我必须在更新目标文件夹中的类之前检查JRE系统库:
希望这有帮助。
如果您添加然后删除 maven
支持项目,就会发生这种情况。
Eclipse仍然会将已编译的文件放入target/classes
而不是bin
(您正在与webapps
文件夹同步)。
要解决此问题,请转到项目属性并更改:
- Java Build Path
=>
Source=>
输出文件夹