如何将默认的 Eclipse Oxygen 编译器合规级别从 9 更改为 1.8,而不是将其恢复为 9?
How do I change the default Eclipse Oxygen compiler compliance level from 9 to 1.8 and not have it revert back to 9?
当我在 Eclipse Oxygen
中打开工作区时,默认的编译器合规级别设置为 9
。我在 Preferences > Java > Compiler
中将其更改回 1.8
并单击“应用”。它一直有效,直到我关闭 Eclipse 并重新打开它,现在它又回到了 9
。我怎样才能让改变坚持下去?
注:
我知道 /instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.compliance
在某处设置为 9,但我找不到它在哪里。
我无法复制您的合规性更改不会在重新启动后持续存在的问题,但您可以手动设置它们而不是使用 Eclipse 的 GUI。为此:
- 关闭 Eclipse。
找到您的首选项文件。这是一个文本文件,其中包含您通常使用 Window > Preferences 在 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
- 将“9”的三个实例替换为“1.8”以符合 JDK 1.8(或“10”以符合 JDK 10)。这三个属性对应于您在 Compiler 屏幕上看到的指定版本的三个字段,如下所示。
- 重新启动 Eclipse 并转到 首选项 > Java > 编译器。编译器的设置现在应该全部设置为 1.8:
这种方法对我有用。但是,即使这种方法解决了您的问题,您仍然可以 raise a Bug Report with Eclipse 因为不需要手动编辑首选项文件。
我的工作区设置被存储在 ~/.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 帮助我解决了这个问题。
当我在 Eclipse Oxygen
中打开工作区时,默认的编译器合规级别设置为 9
。我在 Preferences > Java > Compiler
中将其更改回 1.8
并单击“应用”。它一直有效,直到我关闭 Eclipse 并重新打开它,现在它又回到了 9
。我怎样才能让改变坚持下去?
注:
我知道 /instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.compliance
在某处设置为 9,但我找不到它在哪里。
我无法复制您的合规性更改不会在重新启动后持续存在的问题,但您可以手动设置它们而不是使用 Eclipse 的 GUI。为此:
- 关闭 Eclipse。
找到您的首选项文件。这是一个文本文件,其中包含您通常使用 Window > Preferences 在 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
- 将“9”的三个实例替换为“1.8”以符合 JDK 1.8(或“10”以符合 JDK 10)。这三个属性对应于您在 Compiler 屏幕上看到的指定版本的三个字段,如下所示。
- 重新启动 Eclipse 并转到 首选项 > Java > 编译器。编译器的设置现在应该全部设置为 1.8:
这种方法对我有用。但是,即使这种方法解决了您的问题,您仍然可以 raise a Bug Report with Eclipse 因为不需要手动编辑首选项文件。
我的工作区设置被存储在 ~/.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 帮助我解决了这个问题。