NoClassDefFoundError après la mise à niveau IntelliJ IDEA

Récemment, j'ai créé un nouveau projet en utilisant IntelliJ IDEA et Gradle pour la gestion des dépendances. Après avoir résolu toutes les dépendances nécessaires au projet et l'avoir exécuté, j'obtiens l'erreur suivante:

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

Le problème se produit uniquement avec les classes des dépendances résolues (Je l'ai essayé aussi avec un simple programme main utilisant Cache de goyave). La classe à l'origine de l'erreur est la suivante:

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

Tous les champs sont de couleur correcte (les annotations sont jaunes, rien est Rouge), IntelliJ a toutes les dépendances résolues dans le répertoire External Libraries. J'utilise la flèche verte "Exécuter" pour démarrer le projet.

Lorsque vous utilisez gradle à partir de la ligne de commande, créez un pot fat alors tout fonctionne bien. J'ai déjà essayé "invalider les Caches/redémarrer", tiré le projet plusieurs fois du référentiel, effacé les caches gradle, supprimé toutes les dépendances à la main, essayé de l'exécuter en utilisant L'édition communautaire, L'Édition Ultime, exécutant des projets plus anciens qui déjà travaillé il y a quelque temps (et ne fonctionne pas maintenant).

Pourrait - il être lié à la mise à jour D'IntelliJ IDEA vers 2016.3.4, build 163.12024.16?

21
demandé sur CrazyCoder 2017-03-03 23:02:34

2 réponses

C'est un problème connu dans IntelliJ IDEA qui est spécifique à Gradle 3.4 et aux versions ultérieures:

Il est déjà corrigé dans IntelliJ IDEA 2017.1 et 2016.3.6.

Vous pouvez également utiliser Gradle 3.3 ou plus comme solution de contournement si vous ne pouvez pas ou ne voulez pas mettre à jour IntelliJ IDEA.

29
répondu CrazyCoder 2017-06-09 22:07:58

Définir gradle version sur 3.3 a corrigé ce problème.

0
répondu Mrityu 2018-02-02 05:23:59