Recompile decompiled Java (JD / JAD) source that contains goto instructions

Eran Medan picture Eran Medan · Jan 10, 2010 · Viewed 9.8k times · Source

(Related question: Java compilers or JVM languages that support goto?)

I have decompiled a jar (Legally, for debugging purposes) and want to recompile it.

I've used both JAD and JD and both don't compile due to goto instructions

E.g.

      goto _L1

      ...
      L1: 
      return true;

Is there an easy way (or any way) to recompile it? (Except to manually refactor and remove the goto's)


Answer

Andreas Dolk picture Andreas Dolk · Jan 10, 2010

No, there isn't. In your case, neither JD nor JAD were able to decompile the class files correctly. The 'goto' statements are a hint about the actual program flow.

You could contact the Java Decompiler team directly, send in a class file where decompilation results in illegal source code and ask if it's a bug in the current version or a feature that has not yet been implemented.