Теперь я пытаюсь найти лучший декомпилятор java, я нашел их:
- http://java.decompiler.free.fr/
- http://www.reversed-java.com/fernflower/
- http://dj.navexpress.com/
- http://cavaj-java-decompiler.en.softonic.com/
С помощью этих декомпиляторов я обрабатываю байтовый код этого класса:
public class ss
{
public static void main(String args[])
{
  try{
   System.out.println("try");
  }
  catch(Exception e)
  {
   System.out.println("catch");
  }
  finally
  {System.out.println("finally");}
}
}
и я получил следующие результаты:
fernflower:
public class ss {
   public static void main(String[] var0) {
      try {
         System.out.println("try");
      } catch (Exception var5) {
         System.out.println("catch");
      } finally {
         System.out.println("finally");
      }
   }
}
DJ Decompiler:
import java.io.PrintStream;
public class ss
{
    public ss()
    {
    }
    public static void main(String args[])
    {
        System.out.println("try");
        System.out.println("finally");
        break MISSING_BLOCK_LABEL_50;
        Exception exception;
        exception;
        System.out.println("catch");
        System.out.println("finally");
        break MISSING_BLOCK_LABEL_50;
        Exception exception1;
        exception1;
        System.out.println("finally");
        throw exception1;
    }
}
cavaj:
import java.io.PrintStream;
public class ss
{
    public ss()
    {
    }
    public static void main(String args[])
    {
        System.out.println("try");
        System.out.println("finally");
        break MISSING_BLOCK_LABEL_50;
        Exception exception;
        exception;
        System.out.println("catch");
        System.out.println("finally");
        break MISSING_BLOCK_LABEL_50;
        Exception exception1;
        exception1;
        System.out.println("finally");
        throw exception1;
    }
}
http://java.decompiler.free.fr/:
import java.io.PrintStream;
public class ss
{
  public static void main(String[] paramArrayOfString)
  {
    try
    {
      System.out.println("try");
    }
    catch (Exception localException)
    {
      System.out.println("catch");
    }
    finally {
      System.out.println("finally");
    }
  }
}
Я вижу, что лучший результат в декомпиляторе: http://java.decompiler.free.fr/
Чтобы проверить, я написал очень простой код. Как вы думаете, какой код писать для тестирования декомпиляторов? Может быть, идея лучше, чем попробовать {} catch() {} finally {}?
