【发布时间】:2021-07-13 18:31:39
【问题描述】:
为了在 JDK 15 中使用记录,我曾经在我的 Ant 构建中使用传递给 javac 的参数 --enable-preview --release 15 进行编译。一切都编译并运行良好。
使用 JDK 16 时,如果我使用相同的参数进行编译,我会得到
错误:带有 --enable-preview 的无效源版本 15(预览 语言功能仅支持 16 版)
记录是 JDK 16 的标准功能,所以我希望在没有这些参数的情况下进行编译。但是,如果我删除它们,我会得到
Foo.class 使用 Java SE 15 的预览功能。(使用 --enable-preview 允许加载包含预览功能的类文件)
并且Ant报告编译失败:
编译失败;有关详细信息,请参阅编译器错误输出。在 org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1425)
因此,带有标志和没有标志的编译失败。怎么了?
【问题讨论】:
-
"error: invalid source release 15 with --enable-preview (preview language features are only supported for release 16)" 不确定 ant 但您正在尝试使用 Java 16 编译器编译此类与
--enable-preview --release 15。使用 Java 16 时,您可以直接在不使用--enable-preview的情况下执行此操作。仅在使用 Java 15 时才需要这些参数。但是,如果您想使用 Java 16 预览功能,请执行javac --enable-preview --release 16 ...
标签: java ant javac java-16 preview-feature