2017-03-03 6 views
20

Kürzlich habe ich ein neues Projekt mit IntelliJ IDEA und Gradle für das Abhängigkeitsmanagement erstellt. Nach dem Auflösen alle durch das Projekt erforderliche Abhängigkeiten und läuft es mir folgende Fehlermeldung erhalten:NoClassDefFoundError nach IntelliJ IDEA Upgrade

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 

Das Problem tritt nur bei den Klassen von den aufgelösten Abhängigkeiten (ich versuchte es auch mit einem einfachen main Programm Cache von Guava mit). Die Klasse der Fehler verursacht, ist folgende:

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

Alle Felder richtige Farbe angezeigt (Anmerkungen sind gelb, rot nichts ist), IntelliJ alle aufgelöste Abhängigkeiten im External Libraries Verzeichnis hat. Ich benutze den grünen "run" Pfeil, um das Projekt zu starten.

Wenn Sie Gradle von der Befehlszeile verwenden, erstellen Sie ein Fettglas, dann funktioniert alles gut. Ich habe bereits "Invalidate Caches/Restart" ausprobiert, das Projekt mehrmals aus dem Repository gezogen, die Gradle Caches gelöscht, alle Abhängigkeiten von Hand entfernt, versucht mit der Community Edition, der Ultimate Edition, ältere Projekte auszuführen, die bereits funktionierten vor einiger Zeit (und arbeite jetzt nicht).

Könnte es irgendwie mit der Aktualisierung von IntelliJ IDEA zu 2016.3.4, Build 163.12024.16 in Verbindung stehen?

Antwort

28

Es ist ein bekanntes Problem in IntelliJ IDEA, die 3.4 und späteren Versionen Gradle spezifisch ist:

Es ist schon f ix in IntelliJ IDEA 2017.1 und 2016.3.6.

Sie können Gradle 3.3 oder älter auch als Workaround verwenden, wenn Sie IntelliJ IDEA nicht aktualisieren können oder wollen.

+1

Nur eine Anmerkung, falls andere das gleiche Problem haben. Dies ist nicht spezifisch für Gradle 3.4, da das Problem immer noch mit 3.5 auftritt. Das Update funktioniert jedoch (Aktualisieren von IntelliJ), so dass die Lösung steht. –

+1

Ich stehe vor dem gleichen Problem. In meinem Fall kann ich es ausführen, wenn ich es mit IntelliJ/Maven kompiliere und es durch das Terminal (java -jar myapp.jar) führe. Aber wenn ich versuche, es vom IntelliJ-Menü auszuführen, geht es zu diesem Fehler. Wenn ich es mit Eclipse starte, läuft alles gut. Sehr eigenartig! IDEA ist sehr instabil! Dies ist meine Schlussfolgerung nach der Verwendung von mehr als 2 Jahren, leider. –

+0

Das gleiche Problem wieder mit 2017.3 :( –

0

Das Einstellen der Gravel-Version auf 3.3 hat dieses Problem behoben.