Pregunta

(pregunta relacionada: compiladores Java JVM o idiomas que apoyan Goto? )

He descompilada un frasco (Legalmente, para fines de depuración) y quieren volver a compilar.

Yo he usado tanto JAD y JD y ambos no compilan debido a las instrucciones Goto

por ejemplo.

      goto _L1

      ...
      L1: 
      return true;

¿Hay una manera fácil (o cualquier forma) para volver a compilar? (A excepción de refactorizar y retirar manualmente de la goto)


¿Fue útil?

Solución

No, no lo hay. En su caso, ni tampoco JD JAD fueron capaces de descomponer los archivos de clase correctamente. Las declaraciones del 'Goto' son una pista sobre el flujo del programa real.

Se puede ponerse en contacto con el equipo de Java Decompiler directamente, enviar en un archivo de clase donde los resultados descompilación de código fuente ilegal y preguntan si se trata de un error en la versión actual o una característica que aún no se ha implementado.

Otros consejos

JAD es un decompilador realmente sorprendente, JD ... tiene algunos problemas con las declaraciones "try-catch-finally".

Tiene que pruebe el decompilador de Stiver ( http://www.reversed-java.com/fernflower )?

Emmanuel, autor de JD.

Todos los descompiladores buscan patrones de código correspondientes a las construcciones de origen Java y elegir la fuente que se adapte lo mejor.

Al parecer, el código que tiene no se ajusta a ningún patrón almacenado en cualquiera JAD JD para que pueda obtener uncompilable fuente de Java. Esto es más probable porque JAD no se ha desarrollado activamente desde hace varios años.

Yo sugeriría nos fijamos en el proyecto de hollín que tiene una decompilador mucho más agresivo.

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

Yo recomendaría una moderna decompilador - como CFR o FernFlower

Me puse en línea 6 descompiladores Java:. Jadx, rápido y con el apoyo de Android, CFR (compatible con Java 8), JDCore (muy rápido), Procyon, Fernflower y JAD (muy rápido, pero anticuado)

Uno puede usarlos sin necesidad de instalación aquí: http://www.javadecompilers.com/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top