點擊File–>Project Structure,按照如圖所示修改
1、修改SDKs,將新的JDK的路徑加載進來
2、修改Project的sdk
3、點擊new將新的Jdk加進來
4、保存就好了。
拓展:
language level 介紹
其他 IDE 沒有看到類似 language level
的設置,所以這個功能應該算是 IntelliJ IDEA 特有的,可是 IntelliJ IDEA 官網也沒有專門介紹 language level
的地方,也許 IntelliJ IDEA 認為這個知識點屬於 JDK 范疇所以沒加以介紹吧。所以這里主要我對此的一些理解。我們應該知道 Java JDK 在每個新版本都會有其新特性,而新版本一般也會向下兼容舊版本的特性,IntelliJ IDEA 是對這些 JDK 的新特性是這樣介紹的:
- JDK 6 的新特性:@Override in interfaces
- JDK 7 的新特性:Diamonds,ARM,multi-catch etc.
- JDK 8 的新特性:Lambdas,type annotation etc.
- JDK 9 的新特性:Jigsaw project etc.
etc. == et cetera == and so on == 等等
- 如上第一張圖標注 1,使用的是 JDK 7,顯示的
SDK default
為7 - Diamonds,ARM,multi-catch etc.
- 如上第二張圖標注 1,使用的是 JDK 8,顯示的
SDK default
為8 - Lambdas,type annotation etc.
當我們使用 JDK 8 的時候,我們只能向下兼容 JDK 8 及其以下的特性,所以只能選擇 8 及其以下的 language level
。所以當我們項目使用的是 JDK 8,但是代碼卻沒有使用 JDK 8 的新特性,最多使用了 JDK 7 的特性的時候我們可以選擇 7 - Diamonds,ARM,multi-catch etc.
。
對此我們總結 language level
:限定項目編譯檢查時最低要求的 JDK 特性。
現在假設我們有一個項目代碼使用的 JDK 8 新特性:lambda
語法,但是 JDK 選擇的卻是 JDK 7,即使 language level
選擇了 8 - Lambdas,type annotation etc.
,也是沒有多大意義的,一樣會編譯報錯。
Module 下的 SDK 和 language level
對於大型項目,各個 Module 用到的 SDK
和 language level
很有可能是各不一樣的,IntelliJ IDEA 對此也進行了支持。
- 如上圖標注 1 所示,可以針對 Module 選擇其他 SDK,默認選擇的是
Project SDK
- 如上圖標注 1 所示,可以針對 Module 選擇其他
language level
,默認選擇的是Project language level