ARX*_*ARX 0 java ant javac preview-feature java-16
为了在 JDK 15 中使用记录,我曾经使用--enable-preview --release 15在 Ant 构建上传递给 javac 的参数进行编译。一切都编译并运行良好。
使用 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)
因此,无论有没有标志,编译都会失败。怎么了?
错误:带 --enable-preview 的源版本 15 无效(仅版本 16 支持预览语言功能)
由于您使用的是 JDK-16,因此必须使用 16 作为 的值--release(通常对于 JDK-16 中作为预览功能提供的任何功能)。因此,以下内容将对您有用:
javac --enable-preview --release 16 MyClass.java
Run Code Online (Sandbox Code Playgroud)
但是,record这是 Java-16 中的标准功能,因此您不需要使用--enable-preview参数编译代码。您可以在不使用此参数的情况下编译代码,即
javac MyClass.java
Run Code Online (Sandbox Code Playgroud)
Foo.class 使用 Java SE 15 的预览功能。(使用 --enable-preview 允许加载包含预览功能的类文件)
这不是编译时错误。当尝试直接运行使用参数编译的 .java 类时,您会得到它--enable-preview。您可以将其运行为
java --enable-preview MyClass
Run Code Online (Sandbox Code Playgroud)
编译失败;有关详细信息,请参阅编译器错误输出。在 org.apache.tools.ant.taskdefs.Javac.compile (Javac.java:1425)
您需要更新JAVA_HOME设置以指向 JDK-16 才能ant使用 JDK-16。
| 归档时间: |
|
| 查看次数: |
4799 次 |
| 最近记录: |