使用Java 1.6在Eclipse Mars上运行Ant

时间:2015-06-25 14:13:07

标签: java eclipse ant eclipse-mars

我下载了最新版本的Eclipse(Mars),并在eclipse.ini文件中将所需的Java版本更改为1.6,因为我的项目使用的是Java 1.6。

我在Eclipse中配置了已安装的JRE以使用Java 1.6。 但是当我尝试执行我的蚂蚁目标时,它会产生错误:

  

不支持小于1.7的JRE版本。

是否有任何解决方法在Mars版本中使用Java 1.6,因为我目前无法升级到Java 1.7?

9 个答案:

答案 0 :(得分:21)

升级到Eclipse Mars后我遇到了同样的问题。

我通过将项目的外部工具配置的运行时环境更改为JDK7 解决了这个问题。

我假设您知道如何在eclipse中将JDK7添加到已安装的jre中

打开外部工具配置...然后将JRE更改为JDK 1.7

Open External Tools Configurations

然后更改JRE

Change JRE

但这会产生另一个问题,编译的jar将在JDK 7中,这对于使用JDK6的生产服务器不起作用。

要解决此问题,只需将任务中的目标属性更改为1.6

< javac target =“1.6”>

Change Task target to 1.6

根据@dag和@Chris的建议,这里有更新的ant javac任务。 enter image description here

答案 1 :(得分:6)

我们使用patched Ant plugin为我们解决了问题。对于Eclipse Neon,请参阅第一页上的注释中所述的this link

答案 2 :(得分:5)

请查看<javac>参考https://ant.apache.org/manual/Tasks/javac.html#compilervalues,并将以下属性添加到<javac> - 任务:compiler="javac1.6" source="1.6" target="1.6" executable="[path-to-jdk-1.6/bin/javac]" fork="true" taskname="javac1.6"

答案 3 :(得分:2)

不,你不能选择JDK1.6或更低版本因为Eclipse Mars只运行Java&gt; = 1.7。 请参阅this链接。

答案 4 :(得分:2)

用于运行Eclipse的Java不必与用于项目的Java相同。您必须使用Java 7(或8)运行Eclipse Mars,但您可以将Java 6用于您的项目。

在'Java&gt;中的首选项中告诉Eclipse有关Java 6的信息。安装了JRE并将其设置为默认值(或在单个项目中选择它)。

答案 5 :(得分:2)

我在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支持方面是向前还是向后,但这解决了我的问题。

答案 6 :(得分:0)

我最近遇到了这个问题,Java 8在我的机器上,使用Elicpse Oxygen并尝试使用Ant来构建Java 6项目。我在上面使用了一些建议,但在Ant构建过程中也遇到了一些奇怪的行为。最后它起作用了,这是我的步骤:

1)Java home最终坚持使用Java 8.

2)在Ant脚本中设置@Chris建议的值。

3)不要更改Ant运行时JRE,我的是8,如果我将其更改为6,实际上不会运行Ant构建...

4)项目设置构建路径和编译器级别都设置为6。

5)运行构建。

这会产生Java 6级的构建,对我有用。

答案 7 :(得分:0)

添加大于1.7的新JRE版本

答案 8 :(得分:0)

我的解决方案是下载与 JRE 6/7 兼容的 ant 版本,并在“外部工具配置”中更改 Ant 主页路径以匹配我下载的路径(ClassPath > Ant Home)

enter image description here