Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Eclipse中使用Ant构建-javac不识别lambda表达式(Java1.8)_Java_Eclipse_Ant_Version - Fatal编程技术网

在Eclipse中使用Ant构建-javac不识别lambda表达式(Java1.8)

在Eclipse中使用Ant构建-javac不识别lambda表达式(Java1.8),java,eclipse,ant,version,Java,Eclipse,Ant,Version,我正在尝试在Eclipse中使用Ant构建一个现有项目。问题在于,javac无法识别其中一个文件中使用的Lambda表达式(错误:表达式的非法启动),并且在Ant的编译阶段生成失败 在Eclipse中,我已确保Java编译器遵从性级别设置为1.8,并且Java 8位于Java构建路径中 我还确保myPath、JAVA\u HOME和JRE\u HOME都指向我的JAVA 8目录(在Path中,它指向/bin目录) 对于giggles,我的build.xml文件的编译部分是: <target

我正在尝试在Eclipse中使用Ant构建一个现有项目。问题在于,
javac
无法识别其中一个文件中使用的Lambda表达式(
错误:表达式的非法启动
),并且在Ant的
编译
阶段生成失败

在Eclipse中,我已确保
Java编译器
遵从性级别设置为1.8,并且Java 8位于
Java构建路径

我还确保my
Path
JAVA\u HOME
JRE\u HOME
都指向我的JAVA 8目录(在
Path
中,它指向
/bin
目录)

对于giggles,我的
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>

我真的不知道下一步该怎么办。我求助于重启月食,希望奇迹发生。欢迎任何建议或帮助!提前感谢。

在我的
build.xml
中添加
Java版本:${ant.Java.version}
显示ant仍在运行Java1.7

我添加了Java 8
javac
的目录位置,并使用
executable
fork
属性修改了
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的评论。您的综合能力让我找到了答案。

您使用的是哪一版本的eclipse?当您在eclipse下运行Ant时,它会使用Ant安装中配置的任何东西。您必须正确地配置Ant以使用Java 8。使用
Java版本:${Ant.Java.version}
检查运行Ant时实际使用的版本Ant'javac'任务不知道有关Eclipse中设置的法规遵从性级别的任何信息。您需要指定这些是“javac”任务的属性。