Java - Was Sind Die Ursachen ClassFormatError?
Beim ausführen des Programms aus Eclipse heraus funktioniert es einwandfrei.
Wenn es läuft außerhalb von Eclipse bekomme ich diese:
java.lang.ClassFormatError: Duplicate method name&signature in class file [Class Name]
Der betreffenden Klasse implementiert die vom interface, und das Programm hat mehrere andere Klassen, die sich von der Klasse die in der Fehlermeldung genannten.
Was sind die Ursachen und wie wird es behoben?
An einer Vermutung würde ich sagen, du hast zwei Methoden mit dem gleichen Namen & Signatur in der Klasse.
Kannst du die Klasse code? Könnte es helfen.
Sollte nicht von Eclipse erkannt?
Die Klasse ist ein bisschen groß...894 Linien. Sollte poste ich es hier? Und es muss auch nicht doppelte Methoden, Eclipse erkennt, und es wird nicht kompiliert, wenn es funktioniert.
Könnten Sie überprüfen, dass der code ausgeführt werden, der von außerhalb von Eclipse ist genau der code, den Sie denken, es sollte sein. Es könnte eine einfache copy/paste-Fehler oder sowas.. wenn es nach mir ginge, ich würde die class-Datei, ist mir das Problem außerhalb von Eclipse), zu dekompilieren, es mit cavaj oder einem anderen tool, und überprüfen Sie für eine doppelte Methode.
Kannst du die Klasse code? Könnte es helfen.
Sollte nicht von Eclipse erkannt?
Die Klasse ist ein bisschen groß...894 Linien. Sollte poste ich es hier? Und es muss auch nicht doppelte Methoden, Eclipse erkennt, und es wird nicht kompiliert, wenn es funktioniert.
Könnten Sie überprüfen, dass der code ausgeführt werden, der von außerhalb von Eclipse ist genau der code, den Sie denken, es sollte sein. Es könnte eine einfache copy/paste-Fehler oder sowas.. wenn es nach mir ginge, ich würde die class-Datei, ist mir das Problem außerhalb von Eclipse), zu dekompilieren, es mit cavaj oder einem anderen tool, und überprüfen Sie für eine doppelte Methode.
InformationsquelleAutor WildBamaBoy | 2012-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://docs.oracle.com/javase/7/docs/api/java/lang/ClassFormatError.html
Den Javadocs sind dein Freund.
Es könnte sein, etwas so dumm, wie die Datei-Codierung. Sie sagte,", während es läuft außerhalb von Eclipse". Hast du re-speichern Sie die Datei von einem anderen text-editor, dann Datei-Kodierung auf Sie? Es muss wahrscheinlich UTF8 sein.
Ich wusste nicht,...es scheint, dass es ein Duplikat-Methode, die Hinzugefügt wird. Die zwei Duplikate werden von der Schnittstelle seiner Umsetzung aus. Aber die Methoden sind völlig Verschieden?
können Sie uns zeigen, die Unterschrift des dupplicate Methode ?
Upps, sind Sie nicht zu duplizieren. Es gibt "a" und "a_", habe ich nicht bemerkt den Unterstrich.
InformationsquelleAutor Sam Rueby
Ich hatte das gleiche Problem. Wie für mich, die Ursache war, dass aspectj-plugin kompiliert Quellen zwei mal.
Aspekt-Klasse lässt im "service" - Modul und kompiliert aspectJ-plugin. Und dann kommt es schon kompilieren in der top-Ebene " web " - Modul als Abhängigkeit und entspricht wieder einmal (weil 'service' - Modul wurde als "weaveDependency' im 'web' Modul aspectJ-plugin-config).
Lösung:
Ich habe ersetzt, die nächste Konfiguration in " web " - Modul
mit
InformationsquelleAutor Vladimir Filipchenko
Gegoogelt und Herausgefunden, dass die Deaktivierung von "Deploy on save" kann helfen, das problem zu überwinden. Versuchen Sie auf die test-Plattform und gehen Sie für die Produktion!
InformationsquelleAutor AVA