SDK、Language Level和Compiler version

SDK、Language Level是什么?

在Project和Module两个级别中,都可以设置各自的SDK版本和Language Level版本。

①SDK

SDK:首先介绍一下SDK,SDK就是指工程Project(模块Module)所依赖的依赖库,在java中一般就是指JDK(可以说JDK就是SDK的一种)。

②Language Level

Language Level:再介绍一下Language Level,(似乎只有IDEA中出现了这个,而在其他IDE中并没有这个)。Language Level,就是指在进行编程的时候,代码的语法的版本级别。

​ 例如:虽然我所引入的SDK是JDK11,但是公司中使用的是JDK8,那么,为了代码在自己电脑和上传服务器后都能正常运行,可以将language level调至jdk8

​ (换一句话说,我引入的是JDK11,但是我只用到其中的JDK8的语法)

一图胜千言!

image-20220226224206968

③Compiler version

​ Compiler version指的是项目build之后的生成文件中所使用的语言版本。

​ 事实上,IDEA中并没有这个东西。但是为了将上面两个理解的更完整,我将Java Compiler中的project bytecode version也拿出来讲一下。

image-20220226223919348

​ 可以看到,默认是和Language Level相同等级。而在上图下面的Module中同样可以设置每个Module自己所要编译生成的模块所依赖的语言版本。

总结

​ 其实,Language Level和Compiler version这两个的存在,就是为了让项目发布后,能够更好的兼容、更好的运行。

​ SDK:编代码时导入的版本(用不用还不一定

​ Language Level:在编写代码时实际使用的版本(为了方便compile之后,兼容服务器或公司的版本

​ Compiler version:build打包生成的依赖版本(一般和Language一样)(服务器或公司的版本一定要大于等于这个版本,即运行生成文件的环境的版本要大于等于这个版本

Contents
  1. 1. SDK、Language Level是什么?
    1. 1.1. ①SDK
    2. 1.2. ②Language Level
    3. 1.3. ③Compiler version
  2. 2. 总结
|