Frage

(Verwandte Frage: Java-Compiler oder der JVM-Sprachen unterstützen springen?)

Ich habe dekompiliert ein Glas (Legal, für debugging-Zwecke) und kompilieren Sie es.

Ich habe beides verwendet JAD und JD und beide nicht kompilieren aufgrund von goto-Anweisungen

E. g.

      goto _L1

      ...
      L1: 
      return true;

Gibt es eine einfache Möglichkeit (oder sonstwie) zu kompilieren?(Außer manuell umgestalten und entfernen Sie die goto's)


War es hilfreich?

Lösung

Nein, gibt es nicht. In Ihrem Fall weder JD noch JAD konnte die Klassendateien korrekt dekompilieren. Die ‚goto‘ Aussagen sind ein Hinweis auf die tatsächlichen Programmablauf.

Sie konnten das Java Decompiler Team direkt kontaktieren, senden in einer Klassendatei, wo Dekompilierungsprozeß Ergebnisse in illegalen Quellcode und fragen, ob es ein Fehler in der aktuellen Version ist oder eine Funktion, die noch nicht umgesetzt worden ist.

Andere Tipps

JAD ist ein wirklich erstaunlich Decompiler, JD ... hat einige Probleme mit dem "Try-catch-finally" -Aussagen.

Haben Sie versuchen, die Decompiler von Stiver ( http://www.reversed-java.com/fernflower )?

Emmanuel, der Autor von JD.

suchen Alle Decompiler für Codemuster entsprechend Java-Quellcode Konstruktionen und wählen Sie die Quelle, dass am besten passt.

Anscheinend ist der Code, den Sie haben nicht konform mit einem beliebigen Muster in entweder gespeichert JAD oder JD, so dass Sie uncompilable Java-Quellcode erhalten. Dies ist höchstwahrscheinlich, weil JAD nicht aktiv seit mehreren Jahren entwickelt worden.

Ich würde vorschlagen, Sie auf dem Soot-Projekt, die auf eine viel aggressivere Decompiler hat.

http://www.sable.mcgill.ca/soot/

Ich würde empfehlen, einen modernen decompiler - wie CFR oder FernFlower!

Ich online 6 Java decompilers:Jadx, schnell und mit Android-Unterstützung, CFR (unterstützt Java 8), JDCore (sehr schnell), Procyon, Fernflower und JAD (sehr schnell, aber veraltet).

Man kann Sie ohne installation und hier: http://www.javadecompilers.com/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top