Question

(question connexe: compilateurs Java ou langages JVM qui prennent en charge goto? )

Je décompilé un pot (légalement, pour le débogage) et que vous voulez le recompiler.

Je l'ai utilisé à la fois JAD et JD et les deux ne compilent pas dû à des instructions goto

par exemple.

      goto _L1

      ...
      L1: 
      return true;

Y at-il un moyen facile (ou tout autre moyen) à recompiler? (Sauf pour refactorisons manuellement et retirer le goto)


Était-ce utile?

La solution

Non, il n'y a pas. Dans votre cas, ni JD ni JAD ont pu décompiler les fichiers de classe correctement. Les déclarations goto sont un indice sur le flux réel du programme.

Vous pouvez contacter l'équipe Java Decompiler directement, envoyer dans un fichier de classe où les résultats de décompilation dans le code source illégale et demander si c'est un bug dans la version actuelle ou une fonction qui n'a pas encore été mis en œuvre.

Autres conseils

JAD est un décompilateur vraiment incroyable, JD ... ont quelques problèmes avec les "try-catch-finally" déclarations.

Avez-vous essayez décompilateur de Stiver ( http://www.reversed-java.com/fernflower )?

Emmanuel, auteur de JD.

Tous les décompilateurs recherchent des modèles de code correspondant aux constructions source Java et choisissez la source qui convient le mieux.

Il semble que le code que vous avez ne se conforme pas à un motif stocké dans les deux JAD JD afin que vous obtenez la source uncompilable Java. Ceci est très probablement parce que JAD n'a pas été activement développé depuis plusieurs années.

Je vous suggère de regarder le projet de suies qui a un décompilateur beaucoup plus agressif.

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

Je recommande un décompilateur moderne - comme CFR ou FernFlower

Je mets en ligne 6 Java décompilateurs:. Jadx, rapide et avec le soutien Android, CFR (supporte Java 8), JDCore (très rapide), Procyon, Fernflower et JAD (très rapide, mais pas à jour)

On peut les utiliser sans installation ici: http://www.javadecompilers.com/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top