compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = “1.8”
}
有什么区别呢?
compileOptions
当你在build.gradle文件中设置sourceCompatibility和targetCompatibility为JavaVersion.VERSION_1_8时,你告诉编译器,你的Java源代码是按照Java 8的语法和特性来编写的,并且你希望编译出来的字节码是与Java 8兼容的。这就意味着你的应用可以在运行Java 8或更高版本的JVM上运行。
kotlinOptions
同样,当你设置kotlinOptions
中的jvmTarget
为"1.8"
时,你告诉Kotlin编译器你希望生成的字节码是与Java 8兼容的。Kotlin可以编译成可以在Java虚拟机(JVM)上运行的字节码,并且你可以指定这个字节码的目标版本。
Gradle JDK
Gradle JDK指的是运行Gradle构建工具本身的Java版本(gradle 自身是java写的)。从Gradle 7.0版本开始,Gradle要求至少使用Java 11。但这并不影响你编译的应用程序的Java版本。使用较新版本的JDK来运行Gradle通常可以获得更好的性能和新特性的支持。
区别就是 compileOptions 是告诉gradle 你编译我的时候,将我的java代码编译成适配什么什么类型的class
Gradle JDK 是指运行gradle 脚本的java环境
默认情况下,如果你没有显式指定 sourceCompatibility
和 targetCompatibility
,Gradle 会使用 Android Studio 配置的 JDK 版本 来编译代码——即gradle jdk
Gradle 使用的 JDK 编译工具是 Javac(Java Compiler),它是 JDK 的一部分,用于将 Java 源代码编译成字节码(.class
文件)。Gradle 本身并不直接编译 Java 代码,而是通过配置和调用 JDK 中的编译工具来完成这一过程。