使用Java 1.6在Eclipse Mars上运行Ant

Cha*_*ana 20 java eclipse ant eclipse-mars

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

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

不支持小于1.7的JRE版本.

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

Amr*_*awy 21

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

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

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

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

打开外部工具配置

然后更改JRE

改变JRE

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

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

<javac target ="1.6">

将任务目标更改为1.6

根据@dag和@Chris的建议,这里是更新的ant javac任务. 在此输入图像描述


小智 6

我们使用修补的Ant插件为我们解决了问题.对于Eclipse Neon,也请参见第一页上的注释中所述的链接.

  • 请注意,不鼓励[仅链接答案](http://meta.stackoverflow.com/tags/link-only-answers/info),SO答案应该是搜索解决方案的终点(相比之下)引用的另一个中途停留,随着时间的推移往往会变得陈旧.请考虑在此处添加独立的概要,并将链接作为参考 (3认同)

小智 5

请查看<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".


Bar*_*ney 5

我在 JRE 1.8 上运行 Eclipse Oxygen,但构建了一些旧的 1.7 项目,并且已jdk1.7.0_40作为单独的 JRE 安装并在工具外部配置中进行设置,但仍然出现“不支持小于 1.8 的 jre”错误。

对我来说修复它的只是直接更新构建 xml 配置,特别是如果您有另一个可以复制的工作项目。

具体来说,我去了启动配置:

workspace/.metadata/.plugins/org.eclipse.debug.core/.launches
Run Code Online (Sandbox Code Playgroud)

并编辑相关...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"/>
Run Code Online (Sandbox Code Playgroud)

和:

<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"/>
Run Code Online (Sandbox Code Playgroud)

并重新启动 Eclipse 以获取它。

不知道这在 Eclipse 支持方面是前进还是后退,但它解决了我的问题。


Bad*_*dal 3

不,您不能选择 JDK1.6 或更低版本,因为 Eclipse Mars 只能在 Java >=1.7 上运行。请参考链接。

  • “开发人员到底为什么需要使用”——因为我们为拥有大量遗留应用程序的大公司工作。每一次变更都必须经过适当的工程变更控制。 (4认同)
  • 有关 Eclipse 要求的更好参考是 https://www.eclipse.org/downloads/ - 请参见 **提示**。但到底为什么开发人员需要使用已停产的 JVM 来运行他/她的 IDE?即使在 Java 8 上运行 Eclipse,您仍然可以为 Java 6 开发软件(请参阅 greg-449 的答案)。 (2认同)