使用Java 1.6在Eclipse Mars上运行Ant
我下载了最新版本的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?
升级到Eclipse Mars后我遇到了同样的问题。
我通过将项目的外部工具配置的运行时环境更改为JDK7来解决这个问题。
我假设您知道如何在eclipse中将JDK7添加到已安装的jre中
打开外部工具配置…然后将JRE更改为JDK 1.7
然后更改JRE
但是这会产生另一个问题 ,编译的jar将在JDK 7中,这对于使用JDK6的生产服务器不起作用。
要解决此问题,只需将任务中的目标属性更改为1.6
根据@dag和@Chris的建议,这里是更新的ant javac任务。
我们使用修补的Ant插件为我们解决了问题。 对于Eclipse Neon,请参见第一页上的注释中所述的此链接 。
请查看
参考https://ant.apache.org/manual/Tasks/javac.html#compilervalues并将以下属性添加到
-Task: compiler="javac1.6"
source="1.6"
target="1.6"
executable="[path-to-jdk-1.6/bin/javac]"
fork="true"
taskname="javac1.6"
。
不,你不能选择JDK1.6或更低,因为Eclipse Mars只运行Java> = 1.7。 请参阅此链接。
用于运行Eclipse的Java不必与用于项目的Java相同。 您必须使用Java 7(或8)运行Eclipse Mars,但您可以将Java 6用于您的项目。
在“Java>已安装的JRE”的“首选项”中告诉Eclipse有关Java 6的信息,并将其设置为默认值(或在单个项目中选择它)。
我最近遇到了这个问题,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级的构建,对我有用。
我在JRE 1.8上运行了Eclipse Oxygen但是构建了一些旧的1.7项目,并将jdk1.7.0_40
作为单独的JRE安装并在工具外部配置中设置,但仍然得到“jre小于1.8不支持”错误。
为我修复它的原因是直接更新build xml配置,特别是如果你有另一个可以复制的工作项目。
具体来说,我去了发布配置:
workspace/.metadata/.plugins/org.eclipse.debug.core/.launches
并编辑了相关的...build.xml.launch
文件,替换:
附:
并重新启动Eclipse以获取它。
不知道这是在Eclipse支持方面是向前还是向后,但它解决了我的问题。