如果您使用JDK 17编译代码,但希望将编译级别设置为JDK 8,可以使用-source
和-target
选项来指定源代码和目标字节码的版本。例如,如果您使用javac命令行工具编译代码,可以这样做:
javac -source 8 -target 8 MyFile.java
上面的命令将源代码版本和目标字节码版本都设置为8,这意味着您的代码必须符合Java 8的语法规则,并且编译后的字节码将与JDK 8兼容。
如果您使用构建工具(如Maven或Gradle)来编译代码,可以在构建配置文件中指定源代码和目标字节码的版本。例如,在Maven的pom.xml文件中,可以这样配置:
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
在Gradle的build.gradle文件中,可以这样配置:
tasks.withType(JavaCompile) {
sourceCompatibility = '8'
targetCompatibility = '8'
}
上面的配置将源代码版本和目标字节码版本都设置为8。
需要注意的是,如果您使用了JDK 9及更高版本中引入的新特性或API,则无法将编译级别设置为JDK 8。在这种情况下,您需要修改代码以避免使用这些新特性或API。