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 из Гуавы). Класс, вызывающий ошибку, выглядит следующим образом:

@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, сборка 163.12024.16?

3 ответа

Решение

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

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

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

У меня была такая же проблема, я получил указанную ниже ошибку из приложения весенней загрузки, которое за день до этого работало нормально. Я использую IntelliJ 2020.3, Gradle 6.5.1. Я подозреваю, что репозиторий m2 мог быть поврежден.

      Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication

После множества попыток из моего IntelliJ я попробовал bootRun. [в дереве градиентов вы можете найти это в разделе Задачи> приложение> bootRun], и это сработало

Установка версии Gradle на 3.3 исправила эту проблему.

Другие вопросы по тегам