gpt4 book ai didi

java - 具有源 1.6 配置的 Maven 编译器插件是否识别自 1.7 以来引入的 API?

转载 作者:行者123 更新时间:2023-11-30 08:44:55 26 4
gpt4 key购买 nike

我有一个 maven 项目,其 maven-compiler-plugin 配置如下:

    <plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>

在我的代码中,我使用了自 1.7 以来引入的类 java.nio.charset.StandardCharsets。令我惊讶的是我的代码编译成功,插件不应该抛出错误因为 java.nio.charset.StandardCharsets 不是 1.6 compilant?

最佳答案

targetsource 都与编译器类路径上可用的类没有任何关系。如果您使用 1.7 编译器编译代码,那么 1.7 附带的任何类都可用于您的代码。

target 的作用是告诉编译器以与 java 1.6 版本兼容的格式输出 .class 文件。 source 说只接受可以用 1.6 版编译器编译的 java 代码。

因此,使用写入与 Java 1.6 兼容的类文件中的 Java 1.6 兼容源代码调用仅在 1.7 或更高版本上发布的类是完全合法的。它只是不会在 1.6 上运行。

确保您的代码能够在 1.6 上运行(如果您正在尝试这样做)的唯一方法是使用 1.6 JDK 来编译您的项目。

关于java - 具有源 1.6 配置的 Maven 编译器插件是否识别自 1.7 以来引入的 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33572394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com