SpringBoot啟動后直接退出Process finished with exit code 1


問題描述

出現這個問題時,控制台沒有任何輸出,進程直接退出Process finished with exit code 1

問題解決

嘗試加了一行打印語句
System.out.println("SpringBoot Start....");

結果是可以打印出來的:

SpringBoot Start....
Process finished with exit code 1

此時突然想到,那程序入口沒問題,就是下一行的問題了。

try {
  SpringApplication.run(Application.class, args);
}catch(Exception e) {
  e.printStackTrace();
}

結果是依然沒有任何輸出。但是作為踩坑無數的Java程序員,我們知道Exception還不是最頂級的異常類,於是換成Throwable

try {
  SpringApplication.run(Application.class, args);
}catch(Throwable e) {
  e.printStackTrace();
}

這樣打印出來真正的錯誤了,是一個 ClassDefNotFoundError

解決方案

出現這種情況,首先就要排除依賴沖突的問題,例如可以搜一下具體的這個Class。
將pom文件修改一下,排除某些依賴,然后多reimport一下項目,在Project Structure中,多檢查檢查Project Library,看看是否有不正常的版本。

例如在實際項目中,我用到的是最新的Spring 5.x,但是在Project Library中看到了 Spring 4.3.6的依賴。

結果仔細查發現兩個問題:

  1. Apache Dubbo 2.7.8的依賴是 Spring 4.3.6。
  2. 即使排除了Apache Dubbo 2.7.8,因為IDEA可能有緩存,導致需要多次reimport才能起效。

最后把依賴重新整理一下,該exclude掉的exclude了。

最后就可以直接run了。


免責聲明!

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



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