Выберите и протестируйте Java-декомпилятор [закрыто]

Сейчас я пытаюсь найти лучший декомпилятор 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 Java 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/

Чтобы проверить, я написал очень простой код. Как вы думаете, какой код написать для тестирования декомпиляторов? Может быть, идея в том, чтобы лучше, чем try {} catch () {} finally {}?

Ответы на вопрос(9)

Ваш ответ на вопрос