停止 Eclipse 对类路径和设置的更新

Stop Eclipse updates on classpath and settings

我升级到最新的 Eclipse Mars.2 版本 (4.5.2),但有一个问题让我抓狂。

每次刷新一个项目JDK这里添加版本8:

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.8.0_72"/>

org.eclipse.jdt.core.compiler.compliance=1.8

我的项目多年来一直使用 JDK 6。我已经安装了 JDK 6 和 8 用于测试目的。

无论我是否手动更改项目设置,每次刷新项目时 Eclipse 都会自动设置版本 8。


即使我禁用 Enable project specific settings,当我刷新项目时,该选项也会重新启用,并使用以下内容创建文件 .settings/org.eclipse.jdt.core.prefs

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.compliance=1.8

此外,在全局首选项 > Java > 编译器中我设置了 1.6,在已安装的 JRE 中 jdk1.6.0_43 设置为默认值。

这是我升级Eclipse后出现的,肯定是bug。但是,我想知道是否有任何解决方法。


其他我试过但没有用的东西:

这是一个错误,但不是来自 Eclipse,来自 Gradle 插件:Buildship 1.0.9。

如果有人遇到同样的问题,我修改了 .settings/gradle.prefs 并设置了 connection_java_home 的值:

{
  "1.0": {
    "project_path": ":",
    ...
    "connection_java_home": "C:\Program Files\Java\jdk1.6.0_43",
    ...
  }
}

现在,当我刷新项目时,只有 .classpath 被修改了,但是这个值是:

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/
    org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_43"/>

正如@dit 所建议的,另一种选择是将文件 gradle.properties 添加到项目中,包括:

org.gradle.java.home=C:\Program Files\Java\jdk1.6.0_43

这是一个已知问题,将在 Buildship 1.0.10 中修复

参见 https://bugs.eclipse.org/bugs/show_bug.cgi?id=472996

末尾的讨论