問題描述:
今天創(chuàng)建了一個springboot項目,但是運行的時候出現(xiàn)了問題,用的是gradle構建工具,錯誤信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at com.example.Demo2Application.main(Demo2Application.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
提示的信息是 沒有找到這個 org/springframework/boot/SpringApplication這個文件,但是我全局搜索了一下,是有這個文件以及其對應的class文件的:
這樣應該是沒問題的,其實這個問題我上個星期就遇到過,問了很多人也查找了很多資料,都沒有解決。其實這樣的問題一般都是缺少jar包,或者路徑出現(xiàn)了問題,不過我檢查了一下,我這里是沒有問題的。
解決問題:
最后大早上的,我弄了將近兩個小時終于把問題解決了~~~
由于本地c盤中的.m2下的settings.xml這個文件里配置的倉庫中前幾條都是公司里的repo,所以導致了我refresh project的時候會無比的慢,因為我這邊沒開vpn幾乎時訪問不了公司的repo的,maven去遠程拉依賴的時候不夠智能,因為前兩個repo我配置的是公司的,后兩條我配置的是maven官方的repo,所以maven如果發(fā)現(xiàn)前幾個repo響應太慢應該快速的切換其他的repo,可惜的是maven現(xiàn)在的切換速度太慢了,最后我把這公司的前幾天repo都刪了(記得備份一下),最后拉取依賴的速度就很快了。
接著我發(fā)現(xiàn)創(chuàng)建springboot項目的時候,構建工具用的是maven是沒有問題的,所以我覺得問題可能就出在gradle這個構建工具上,最后發(fā)現(xiàn)是因為自己用了本地的gradle配置,最后改成推薦的gradle配置就可以了:
然后重新創(chuàng)建一個gradle project 就可以啟動成功了:
我覺得可能是springboot版本和gradle版本出現(xiàn)了沖突,因為默認的gradle wrapper是springboot 自己集成進去的,springboot即使版本更新,自己也會維護這個gradle wrapper,所以用推薦的是沒有問題的。