前言
此文章2018-11-15寫於csdn部落格,今遷移至掘金,不過最新的版本的方法原理也差不多。
研究了幾個星期問題,終於解決了。Java 11從JDK中剔除了很多JRE的東西,但事實並非如此。在網上僅僅只找到一點關於jdk11和spring boot的支援問題的資料:jdk11與springboot的依賴。不過仍然沒解決問題,這篇文章將實際幫你解決這個springboot留下的問題。
簡單解釋一下為什麼會出現這個問題: jdk11從jdk中剔除了很多jre的東西,導致idea在自動下載時沒有下載那部分依賴包,springboot根本無法啟動。
1. 準備&注意事項
有幾個注意事項:
- 專案在IDEA執行。
- 請勿讓IDEA下載太多的Spring boot版本,放在一起容易出問題,一般存放位置在C盤的使用者裡面.m2資料夾就是springboot存放位置,可以將其刪除,建立專案的時候,選擇版本,IDEA會自動幫你下載。
- 因為JAVA官網已經不再支援jdk11的下載了,我這兒有網盤下載jdk10的下載提取碼: e548
- jdk11官網下載
2. 解決方法
在idea中jdk11在配置springboot時所缺少的幾個依賴包,在jdk10版本下下載的springboot2.1.0中就可以找到了。
第一步:刪除之前IDEA下載的所有springboot版本
在C盤使用者目錄下.m資料夾就是下載的springboot版本,直接把資料夾刪掉即可。
第二步:用IDEA新建Spring Initializr 專案
利用jdk10來下載所缺的依賴包 這個時候必須使用jdk10來建立專案(利用Spring Initializr建立)
紅色位置不能錯
其他預設建立即可。第三步:直接使用jdk11建立專案
和上面步驟大致一樣,jdk版本選擇11即可。
第四步:建立HelloController.java測試
如圖建立測試程式碼HelloController.java
package com.example.demo07;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestController;
/**
* 這裡的@RestController 相當於@ResponseBody + @Controller
*/
@RestController
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String helloSpringBoot(){
return "Hello SpringBoot!";
}
}
複製程式碼
接下來就是見證奇蹟的時刻,直接點選執行,在瀏覽器中輸入http://localhost:8080/hello 結果如下:
3. 小結&參考資料
小結
對於強迫症的我來說,一直連續弄了幾周,皇天不負有心人,終於找到了解決方法,心情是無比激動啊,然後就翹了一節課。