背景:進了新公司,他們用eclipse,我習慣用idea,然後將eclipse項目,用idea導入項目,出現這種情況
如果項目在Myeclipse或者eclipse裏面跑起沒問題,idea遇到編譯錯誤,多半是編譯問題,這裏引用大佬的一句話,Eclipse編譯代碼時,使用的是自帶的JDT(Java Development Tools),而Maven默認使用的是JAVA_HONE中的javac,而javac相對JDT的檢查機制來說,更加的嚴格,所以導致Eclipse可以編譯通過,而用Maven編譯會報錯的結果。我們的idea編譯默認是Javac。這就是爲什麼Myeclipse跑起沒問題了。
解決辦法如下:
在idea找到File | Settings | Build, Execution, Deployment | Compiler | Java Compiler,右側的Use compiler項中把Javac 改成Eclipse,如圖:
這個問題是解決了,但是又出現新問題了
用IDEA2019.1運行SpringBoot項目報錯如下:
Error:java: Internal compiler error: java.lang.Exception: java.lang.NoClassDefFoundError: org/springframework/boot/configurationprocessor/metadata/JsonConverter at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:172)
百度的解決方案:
分下看這個跟Eclipse有關,可是這個不是Eclipse項目(沒有Eclipse的Workspeace信息),後來查找發現跟Eclipse有關設置就是之前自己設置鍋編譯器,改過來問題得到解決。解決步驟:IDEA中File-->settings-->Bulid Execution Deloyment-->Complier-->Java Complier中的user complier有原來的Eclipse改爲javac即可
然後瞬間懵逼了,又要轉回去