如何解決SpringBoot2.1.0缺少Java11依賴項問題

米奇羅發表於2019-03-23

前言

此文章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建立)

利用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. 小結&參考資料

小結

對於強迫症的我來說,一直連續弄了幾周,皇天不負有心人,終於找到了解決方法,心情是無比激動啊,然後就翹了一節課。

參考資料

相關文章