Pergunta

(Questão: Java compiladores ou linguagens JVM que o apoio Goto? )

Tenho compilado uma jarra (Legalmente, para fins de depuração) e quer recompilar-lo.

Eu usei tanto JAD e JD e ambos não compilar devido ao Goto instruções

por exemplo.

      goto _L1

      ...
      L1: 
      return true;

Existe uma maneira fácil (ou forma qualquer) para recompilar-lo? (Exceto para refatorar e remover manualmente do goto)


Foi útil?

Solução

Não, não há. No seu caso, nem JD nem JAD foram capazes de decompor os arquivos de classe corretamente. As demonstrações 'Goto' são uma dica sobre o fluxo do programa actual.

Você pode contactar a equipa de Java Decompiler diretamente, enviar um arquivo de classe, onde decompilation resulta em código fonte ilegal e perguntar se é um bug na versão atual ou um recurso que ainda não foi implementado.

Outras dicas

JAD é um decompiler realmente incrível, JD ... ter alguns problemas com os "try-catch-finally" declarações.

você

Tem tentar o decompiler de Stiver ( http://www.reversed-java.com/fernflower )?

Emmanuel, autor de JD.

Todos os decompilers procurar padrões de código que correspondem a construções de origem Java e escolha a fonte que se encaixa melhor.

Aparentemente, o código que você tem não se conforma com qualquer padrão armazenada em qualquer JAD JD modo a obter-fonte Java uncompilable. Isso é mais provável porque JAD não foi desenvolvido ativamente por vários anos.

eu sugiro que você olhar para o projeto fuligem que tem um decompiler muito mais agressiva.

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

Gostaria de recomendar um decompiler moderna - como o CFR ou FernFlower

Eu coloquei em linha 6 Java decompilers:. Jadx, rápido e com suporte Android, CFR (suporta Java 8), JDCore (muito rápido), Procyon, Fernflower e JAD (muito rápido, mas desatualizado)

Pode-se usá-los sem a instalação aqui: http://www.javadecompilers.com/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top