2017-02-02 3 views
0

Nachdem ich mein Projekt (einfach nur Java 1.8, nichts besonderes) in Eclipse (Mars.2) zu Maven konvertiert habe (Rechtsklick auf Projekt => Konfigurieren => Maven Projekt), plötzlich kann ich nicht die üblichen Klassen laufen, die immer gearbeitet, diese Nachricht erhalten:Plötzlich NoClassDefFoundError in Eclipse (und nur dort)

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils 
    at eas.veryFastPDF.script.RepresentableDefault.<init>(RepresentableDefault.java:169) 
    at eas.veryFastPDF.script.RepresentableDefault$1.<init>(RepresentableDefault.java:1336) 
    at eas.veryFastPDF.script.RepresentableDefault.<clinit>(RepresentableDefault.java:1336) 
    at eas.veryFastPDF.HelpTexts.<clinit>(HelpTexts.java:525) 
    at eas.GlobalVariables.<clinit>(GlobalVariables.java:52) 
    at eas.plugins.PluginFactory.deserializePlugins(PluginFactory.java:220) 
    at eas.plugins.PluginFactory.loadPluginsFromFile(PluginFactory.java:127) 
    at eas.plugins.PluginFactory.<clinit>(PluginFactory.java:118) 
    at eas.startSetup.ParCollection.complete(ParCollection.java:1304) 
    at eas.startSetup.Starter.main(Starter.java:1924) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 10 more 

Wenn ich die Teile auf Kommentar, die StringUtils erfordern, andere referenzierte Bibliotheken verursachen den gleichen Fehler. Die Problemklassen sind dort, wo sie schon immer waren: in JARs, auf die im Build-Pfad verwiesen wird, und es gibt keine Fehler bei der Kompilierung.

Einige weitere seltsame Dinge dazu:

  • der älteren Nicht-Maven-Version nicht zurückwechseln nicht.
  • Projektbereinigung funktioniert nicht.
  • Saubere neue Kasse des Projekts funktioniert nicht.
  • Sogar die Installation einer neuen Eclipse-Version (Neon.2 - war sowieso fällig) funktioniert nicht.
  • Das Ausführen außerhalb der Eclipse mit der Befehlszeile funktioniert!
  • EDIT: Jetzt habe ich sogar Java entfernt und neu installiert - immer noch nicht funktionieren.

Was zur Hölle passiert?

EDIT: Ich habe offensichtlich alle Antworten aus der vorgeschlagenen "doppelte" Frage überprüft, und sie werden nicht funktionieren. Bitte nicht als Duplikat markieren - das ist es nicht!

+0

Wenn Sie außerhalb der Eclipse in der Befehlszeile ausführen, kompilieren Sie auch zuvor mit Maven? Oder du machst einfach deine Hauptklasse? – pablo

+0

Nein, da verwende ich einen einfachen Java-Befehl wie folgt: java -Xmx15000M -cp "./* ;." eas.startSetup.Starter – Duke

+0

Mögliches Duplikat von [Strange "java.lang.NoClassDefFoundError" in Eclipse] (http://stackoverflow.com/questions/2233656/strange-java-lang-noclassdeffounderror-in-eclipse) – Winter

Antwort

1

Dies ist, was schließlich (nach einigen Stunden) für mich gearbeitet:

ich die ganze Zeug im Arbeitsbereich Ordner gespeichert eclipse entfernt - genauer gesagt, im Grunde jeder Ordner mit einem Punkt beginnen. (Wahrscheinlich hätte nur der Ordner .metadata genügt, aber ich habe nicht den Nerv, dies tiefer zu untersuchen.)

Offenbar ist etwas über den Klassenpfad permanent im Arbeitsbereich gespeichert, so dass der Wechsel zu einer früheren Version nicht erfolgte Löse mein Problem nicht.

Nur eine Warnung: Diese Lösung hat funktioniert, aber die Reinigung der Arbeitsfläche wie diese wird die Sonnenfinsternis fast alles vergessen lassen!

Verwandte Themen