IntelliJ IDEA項目更換JDK版本


點擊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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM