在 Eclipse 中使用 Ant 构建 - javac 无法识别 lambda 表达式 (Java 1.8)

Building with Ant in Eclipse - javac not recognizing lambda expression (Java 1.8)

我正在尝试在 Eclipse 中使用 Ant 构建现有项目。问题是 javac 无法识别其中一个文件中 Lambda 表达式 (error: illegal start of expression) 的使用,并且在 Ant 的 compile 阶段构建失败。

在 Eclipse 中,我确保 Java Compiler 合规级别设置为 1.8,并且 Java 8 在 Java Build Path.

我还确保我的 PathJAVA_HOMEJRE_HOME 都指向我的 Java 8 目录(在 Path 它指向 /bin 目录)。

咯咯笑,我的build.xml文件的编译部分是:

<target name="compile" depends="setup">
    <javac destdir="${base}/${build.dir}"
           srcdir="${base}/${src.dir}"
           deprecation="true"
           verbose="false"
           includeantruntime="false">
           <classpath refid="libs" />
    </javac>
</target>

我不太确定下一步该做什么。我已经重新启动 Eclipse,希望奇迹发生。欢迎任何建议或帮助!提前致谢。

<echo> Java version: ${ant.java.version}</echo> 添加到我的 build.xml 显示 Ant 仍然是 运行 Java 1.7.

我添加了 Java 8 javac 的目录位置,并使用 executablefork 属性修改了 javac 任务以使用它:

<property name="javac1.8" location="/path/to/java8/bin/javac" />
<target name="compile" depends="setup">
    <javac executable="{$javac1.8}" fork="yes"
           destdir="${base}/${build.dir}"
           srcdir="${base}/${src.dir}"
           deprecation="true"
           verbose="false"
           includeantruntime="false">
           <classpath refid="libs" />
    </javac>
</target>

非常感谢@Jim Garrison、@wero 和@greg-449 的评论。你的力量结合起来让我找到答案。