如何将默认的Eclipse Oxygen编译器合规性级别从9更改为1.8,而不是将其恢复为9?

时间:2018-05-02 04:21:56

标签: java eclipse java-9 eclipse-oxygen

当我在Eclipse Oxygen中打开工作区时,默认编译器合规性级别设置为9。我在Preferences > Java > Compiler中将其更改回1.8,然后点击应用。它有效,直到我关闭Eclipse并重新打开它,现在它回到9。我怎样才能改变这个变化?

注意: 我知道/instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.compliance设置为9,但我无法找到它的位置。

2 个答案:

答案 0 :(得分:1)

我无法复制合规性更改的问题,而不是在重新启动时保持不变,但您可以手动设置它们而不是使用Eclipse的GUI。要做到这一点:

  • 关闭Eclipse。
  • 找到您的偏好文件。这是一个文本文件,其中包含您通常使用 Window>在Eclipse中分配的许多设置。偏好设置即可。该文件将位于 .metadata 目录中的工作区目录中,名称如下:

    <强> .metadata.plugins \ org.eclipse.core.runtime.settings \ org.eclipse.jdt.core.prefs

  • 在文本编辑器中打开文件 org.eclipse.jdt.core.prefs ,然后编辑以下三行:

  

org.eclipse.jdt.core.compiler.codegen.targetPlatform = 9

     

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

     

org.eclipse.jdt.core.compiler.source = 9

  • 替换&#34; 9&#34;的三个实例。用&#34; 1.8&#34;符合JDK 1.8标准(或#34; 10&#34;符合JDK 10标准)。这三个属性对应于您在编译器屏幕上看到的三个字段,它们指定了一个版本,如下所示。
  • 重启Eclipse并转到偏好设置&gt; Java&gt;编译器即可。现在,编译器的设置都应设置为1.8:

complianceGUI

这种方法对我有用。但是,即使这种方法可以解决您的问题,您仍然可以raise a Bug Report with Eclipse,因为不需要手动编辑首选项文件。

答案 1 :(得分:1)

我的工作区设置被~/.eclipse/org.eclipse.oomph.setup/setups/user.setup中存储的用户特定设置覆盖。具体来说,该文件包含以前安装的剩余设置行:

<setupTask
      xsi:type="setup:PreferenceTask"
      key="/instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.codegen.targetPlatform"
      value="9"/>
  <setupTask
      xsi:type="setup:PreferenceTask"
      key="/instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.compliance"
      value="9"/>
  <setupTask
      xsi:type="setup:PreferenceTask"
      key="/instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.source"
      value="9"/>
</setupTask>

<强>解决方案:~/.eclipse/org.eclipse.oomph.setup/setups/user.setup删除上面的行。

注意: 感谢@skomisa帮助我解决这个问题。