Idea中Jdk和Language level的指定方式
Idea中Jdk和Language level的指定
JDK在每個(gè)新版本都會有其新特性
而新版本一般也會向下兼容舊版本的特性,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.
- 當(dāng)我們使用 JDK 8 的時(shí)候,我們只能向下兼容 JDK 8 及其以下的特性,所以只能選擇 8 及其以下的
language level
。 - 所以當(dāng)我們項(xiàng)目使用的是 JDK 8,但是代碼卻沒有使用 JDK 8 的新特性,只需使用 JDK 7 的時(shí)候我們可以選擇
7 - Diamonds,ARM,multi-catch etc.
- 假設(shè)我們有一個(gè)項(xiàng)目代碼使用了JDK 8 新特性:lambda 語法,但是 JDK 版本選擇的卻是 JDK 7,即使 language level 選擇了
8 - Lambdas,type annotation etc.
也是沒有多大意義的,一樣會編譯報(bào)錯(cuò)。
所以說,我們使用Project SDK(Software Development Kit, 軟件開發(fā)工具包)來選擇安裝的JDK版本,使用Language level來限制JDK的版本。
注意
- 如果一個(gè)項(xiàng)目在本地運(yùn)行正常,但是Language level配置錯(cuò)誤,會在Linux部署項(xiàng)目時(shí)出現(xiàn)路徑錯(cuò)誤等問題。
- 做項(xiàng)目時(shí),要注意這地方的配置。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解MybatisPlus中@TableLogic注解的使用
@TableLogic一般用于實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)邏輯刪除,本文我們將介紹 @TableLogic 注解的用法,以及每個(gè)屬性的實(shí)際意義和用法,感興趣的可以了解一下2022-06-06SpringBoot使用GZIP壓縮反回?cái)?shù)據(jù)問題
這篇文章主要介紹了SpringBoot使用GZIP壓縮反回?cái)?shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04spring security動態(tài)配置url權(quán)限的2種實(shí)現(xiàn)方法
對于使用spring security來說,存在一種需求,就是動態(tài)去配置url的權(quán)限,即在運(yùn)行時(shí)去配置url對應(yīng)的訪問角色。下面這篇文章主要給大家介紹了關(guān)于spring security動態(tài)配置url權(quán)限的2種實(shí)現(xiàn)方法,需要的朋友可以參考下2018-06-06SpringBoot3使用devtools實(shí)現(xiàn)代碼熱部署的詳細(xì)步驟
Spring Boot DevTools是一組用于提高開發(fā)人員生產(chǎn)力,并加速Spring Boot應(yīng)用程序開發(fā)的工具,它提供了一些功能,可以幫助開發(fā)人員更快速地構(gòu)建應(yīng)用程序,并減少常見的開發(fā)問題,本文給大家介紹了SpringBoot3使用devtools實(shí)現(xiàn)代碼熱部署的詳細(xì)步驟,需要的朋友可以參考下2024-01-01