IntelliJ 2016.3.4中突然出现java.lang.NoClassDefFoundError

时间:2017-03-07 10:22:54

标签: intellij-idea gradle spring-boot

昨天我的应用程序工作正常但是当我今天尝试通过IntelliJ启动时,我只是得到了这个错误:

Connected to the target VM, address: '127.0.0.1:41617', transport: 'socket'
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
    at com.company.app.Application.main(Application.java:18)
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)
    ... 1 more
Disconnected from the target VM, address: '127.0.0.1:41617', transport: 'socket'

Process finished with exit code 1

这是一个使用Gradle(3.4.1)构建的Spring Boot(1.5.1)应用程序。当我调用gradle bootRun时,应用程序就会毫不费力地启动。 我已经尝试从头开始重新导入(删除整个目录并重新克隆它)并删除本地.gradle目录。总共有两个应用程序不再工作,但自昨天以来没有任何代码更改。

1 个答案:

答案 0 :(得分:6)

好吧,根据Jetbrain的bug追踪器,IntelliJ 2016.3.4中似乎存在一个与Gradle 3.4不兼容的错误:https://youtrack.jetbrains.com/issue/IDEA-168710

解决方案:升级到IntelliJ 2017(撰写本文时为EAP)或降级至Gradle 3.3。

降级Gradle非常简单,只需在项目中输入./gradlew wrapper --gradle-version=3.3即可。