Подтвердить что ты не робот

NoClassDefFoundError после обновления IntelliJ IDEA

Недавно я создал новый проект с использованием IntelliJ IDEA и Gradle для управления зависимостями. После решения всех зависимостей, необходимых для проекта и запускающих его, я получаю следующую ошибку:

java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
    at com.some.fancy.name.Application.main(Application.java:13)
    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

Проблема возникает только с классами из разрешенных зависимостей (я попробовал это также с простой программой main, используя Cache из Guava). Класс, вызывающий ошибку, следующий:

@SpringBootApplication
public class Application {
    public static void main(String... args) {
        SpringApplication.run(Application.class, args);
    }
}

Все поля отображаются с правильным цветом (аннотации желтые, ничего не красные), IntelliJ имеет все разрешенные зависимости в каталоге External Libraries. Я использую зеленую стрелку "запустить", чтобы начать проект.

При использовании Gradle из командной строки, создавая толстую банку, все работает нормально. Я уже пробовал "Invalidate Caches/Restart", вытаскивал проект несколько раз из репозитория, очищал кеши Gradle, удалял все зависимости вручную, пытался запустить его с помощью Community Edition, Ultimate Edition, запускал старые проекты, которые уже работал некоторое время назад (и теперь не работает).

Может ли это быть связано с обновлением IntelliJ IDEA до 2016.3.4, build 163.12024.16?

4b9b3361

Ответ 1

Это известная проблема в IntelliJ IDEA, характерная для Gradle 3.4 и более поздних версий:

Он уже исправлен в IntelliJ IDEA 2017.1 и 2016.3.6.

Вы также можете использовать Gradle 3,3 или более старые как обходной путь, если вы не можете или не хотите обновлять IntelliJ IDEA.