请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

**关于 jdk 1.8 的配置问题**

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 是同一个吗?如果不是同一个 版本号可以不一样吗?

正在回答 回答被采纳积分+3

1回答

allenfeng 2022-08-06 10:01:48

问题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


1 回复 有任何疑惑可以回复我~
  • 提问者 慕粉4400366 #1
    好的,谢谢老师!
    Gradle  7.0 之后的 要求使用 Java 11 构建项目。按照上面老师的意思,我在升级到最新版本  Android   studio 以及 gradle 插件之后,只需要 将 gradle 的 jdk 配置成 Java 11,而之前 电脑上下载的 jdk 1.8 配置的环境变量 不需要改动。 即 编译项目可以继续使用  Java 8,    Gradle构建项目使用的是 Java 11.  这两者互不影响。
    回复 有任何疑惑可以回复我~ 2022-08-06 18:24:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信