Domanda

(domanda Correlati: compilatori Java o lingue JVM che supportano goto? )

Ho decompilato un barattolo (legalmente, a scopo di debug) e si vuole ricompilare esso.

Ho usato sia JAD e JD ed entrambi non si compilano a causa di istruzioni goto

per es.

      goto _L1

      ...
      L1: 
      return true;

C'è un modo semplice (o qualsiasi altro modo) per ricompilare esso? (Ad eccezione di refactoring e rimuovere manualmente il goto)


È stato utile?

Soluzione

No, non c'è. Nel tuo caso, né JD nè JAD sono stati in grado di decompilare correttamente i file di classe. Le dichiarazioni del 'goto' sono un suggerimento circa il flusso del programma vero e proprio.

Si potrebbe contattare il team Java Decompiler direttamente, inviano in un file di classe dove i risultati decompilazione nel codice sorgente illegale e chiedono se si tratta di un bug nella versione corrente o una funzione che non è ancora stato implementato.

Altri suggerimenti

JAD è un decompilatore veramente sorprendente, JD ... hanno alcuni problemi con le normative "try-catch-finally".

Avete provare il decompilatore di Stiver ( http://www.reversed-java.com/fernflower )?

Emmanuel, autore di JD.

Tutti i decompilatori cercano modelli di codice corrispondenti alle costruzioni sorgente Java e scegliere la fonte che si adatta al meglio.

A quanto pare il codice che avete non è conforme a qualsiasi modello memorizzato in uno o JAD JD in modo da ottenere uncompilable sorgente Java. Questo è più probabile perché JAD non è stato attivamente sviluppato da diversi anni.

Vorrei suggerire si guarda al progetto di fuliggine che ha un decompilatore molto più aggressivo.

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

mi sento di raccomandare un moderno decompilatore - come CFR o FernFlower

ho messo in linea 6 decompilatori Java:. Jadx, veloce e con il supporto di Android, CFR (supporta Java 8), JDCore (molto veloce), Procione, Fernflower e JAD (molto veloce, ma obsoleto)

Uno li può usare senza installazione qui: http://www.javadecompilers.com/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top