背景:进了新公司,他们用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即可
然后瞬间懵逼了,又要转回去