我下载了最新版本的 Eclipse (Mars),并在 eclipse.ini 文件中将所需的 Java 版本更改为 1.6,因为我的项目使用 Java 1.6。
我在 Eclipse 中配置了已安装的 JRE 以使用 Java 1.6。但是当我尝试执行我的 ant 目标时,它会产生一个错误:
不支持低于 1.7 的 JRE 版本。
由于我目前无法升级到 Java 1.7,是否有任何解决方法可以在 Mars 版本中使用 Java 1.6?
我下载了最新版本的 Eclipse (Mars),并在 eclipse.ini 文件中将所需的 Java 版本更改为 1.6,因为我的项目使用 Java 1.6。
我在 Eclipse 中配置了已安装的 JRE 以使用 Java 1.6。但是当我尝试执行我的 ant 目标时,它会产生一个错误:
不支持低于 1.7 的 JRE 版本。
由于我目前无法升级到 Java 1.7,是否有任何解决方法可以在 Mars 版本中使用 Java 1.6?
升级到 Eclipse Mars 后我遇到了同样的问题。
我通过将项目的外部工具配置的运行环境更改为 JDK7解决了这个问题。
我假设您知道如何在 eclipse 中将 JDK7 添加到已安装的 jre
打开外部工具配置...然后将 JRE 更改为 JDK 1.7
然后更改JRE
但这会产生另一个问题,编译后的 jar 将在 JDK 7 中,这在 JDK6 的生产服务器上不起作用。
要解决这个问题,只需将任务中的目标属性更改为 1.6
<javac 目标="1.6">
根据@dag 和@Chris 的建议,这里是更新的 ant javac 任务。
我们使用修补过的 Ant 插件为我们解决了这个问题。对于 Eclipse Neon,还请参阅此链接,如第一页评论中所述。
请查看<javac>
参考https://ant.apache.org/manual/Tasks/javac.html#compilervalues并将以下属性添加到您的<javac>
-Task: compiler="javac1.6"
source="1.6"
target="1.6"
executable="[path-to-jdk-1.6/bin/javac]"
fork="true"
taskname="javac1.6"
。
我在 JRE 1.8 上运行 Eclipse Oxygen,但构建了一些旧的 1.7 项目,并已jdk1.7.0_40
作为单独的 JRE 安装并在工具外部配置中进行设置,但仍然出现“不支持小于 1.8 的 jre”错误。
为我解决的只是直接更新构建 xml 配置,特别是如果您有另一个可以复制的项目可以工作。
具体来说,我去了以下启动配置:
workspace/.metadata/.plugins/org.eclipse.debug.core/.launches
并编辑了相关...build.xml.launch
文件,替换:
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_40"/>
和:
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_INSTALL_NAME" value="jdk1.7.0_40"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_INSTALL_TYPE_ID" value="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType"/>
并重新启动 Eclipse 以获取它。
不知道这在 Eclipse 支持方面是前进还是后退,但它解决了我的问题。
不,您不能使用 JDK1.6 或更低版本,因为 Eclipse Mars 只能使用 Java >=1.7 运行。参考这个链接。
用于运行 Eclipse 的 Java 不必与用于项目的 Java 相同。您必须使用 Java 7(或 8)运行 Eclipse Mars,但您可以将 Java 6 用于您的项目。
在“Java > Installed JREs”的首选项中告诉 Eclipse 关于 Java 6,并将其设置为默认值(或在单个项目中选择它)。
我最近在我的机器上使用了 Java 8,使用 Elicpse Oxygen 并尝试使用 Ant 构建 Java 6 项目时遇到了这个问题。我使用了上面的一些建议,但在 Ant 构建过程中也遇到了一些奇怪的行为。最后它起作用了,这是我的步骤:
1) Java 主页最终指向 Java 8。
2) 在 Ant 脚本中设置 @Chris 建议的值。
3)不要更改Ant Runtime JRE,我的保留在8,如果我将其更改为6,实际上不会运行Ant构建......
4)项目设置构建路径和编译器级别都设置为6。
5)运行构建。
这会生成对我有用的 Java 6 级别的构建。
添加大于 1.7 的新 JRE 版本