web-dev-qa-db-fra.com

NoClassDefFoundError after IntelliJ IDEA améliorer

Récemment, j'ai créé un nouveau projet 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é, l'erreur suivante apparaît:

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 ne se produit qu'avec les classes des dépendances résolues (je l'ai essayé aussi avec un simple programme main utilisant Cache de Guava). 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);
    }
}

La couleur de tous les champs est correcte (les annotations sont en jaune, rien en rouge), IntelliJ a toutes les dépendances résolues dans le répertoire External Libraries. J'utilise la flèche verte "lancer" pour lancer le projet.

Lorsque vous utilisez gradle à partir de la ligne de commande, créez un gros pot alors tout fonctionne correctement. J'ai déjà essayé "Invalidate Caches/Restart", extrait le projet plusieurs fois du référentiel, effacé les caches de gradation, supprimé toutes les dépendances à la main, essayé de l'exécuter à l'aide de Community Edition, l'édition ultime, exécutant des projets plus anciens qui fonctionnaient déjà. il y a quelque temps (et ne fonctionne pas maintenant).

Pourrait-il être lié d'une manière ou d'une autre à la mise à jour de IntelliJ IDEA vers 2016.3.4, version 163.12024.16?

25

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

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

Vous pouvez également utiliser Gradle 3.3 ou une version antérieure comme solution de contournement si vous ne pouvez ou ne souhaitez pas mettre à jour IntelliJ IDEA.

31
CrazyCoder

Le réglage de la version de gradle sur 3.3 a corrigé ce problème. 

0
Mrityu