**关于 jdk 1.8 的配置问题**
来源:2-9 Groovy进阶语法-2

慕粉4400366
2022-08-03
1.在 安装 Android Studio 的时候,会下载的 jdk 1.8 安装到电脑,
并配置好环境变量 供开发使用。
2.有时候 会在 module 的 build.gradle 配置
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
问题1.这两者的作用分别是什么?
问题2. 下载安装的 jdk 1.8 与 build.gradle 文件中配置的 JavaVersion.VERSION_1_8 是同一个东西吗?
问题3.Android Studio 中 gradle 构建项目 配置的 JDK,与 环境变量配置的jdk 是同一个吗?如果不是同一个 版本号可以不一样吗?
1回答
-
allenfeng
2022-08-06
问题1.这两者的作用分别是什么?
sourceCompatibility 对应 最终javac编译程序所使用的 "-source" 参数。最高可以指定到当前编译环境所使用的JDK版本。提供了这个参数后,编译程序会在编译过程中严格限制我们可以使用的语言特性。打个比方,若这个值配置了1.6,那我们的代码中就不能使用1.8中的lambda表达式
targetCompatibility 对应 最终javac编译程序所使用的 "-target" 参数。这个参数用来指定最终生成的字节码文件的版本,意味着,虚拟机可以运行的最低字节码文件版本不能低于我们指定的值,否则虚拟机将无法识别。
android开发中指定这两个值,是为了在代码中可以使用 Java8的一些特性,比如 Lambda表达式
具体可以参考:https://developer.android.com/studio/write/java8-support
--------------------------
问题2. 下载安装的 jdk 1.8 与 build.gradle 文件中配置的 JavaVersion.VERSION_1_8 是同一个东西吗?
不是一个东西,前者是编译程序(或理解为环境),后者是编译参数,后者为前者所用。
--------------------------
问题3.Android Studio 中 gradle 构建项目 配置的 JDK,与 环境变量配置的jdk 是同一个吗?如果不是同一个 版本号可以不一样吗?
可以不同。Android Studio提供了内置的JDK,即使你未自己安装JDK并配置环境变量,使用Android Studio也可以编译。配置方法见:https://developer.android.com/studio/intro/studio-config#jdk
112022-08-06
相似问题