#jclazz

jclazz - Java Decompiler



Давным-давно, году эдак в 2009, от нечего делать, наткнулся я на спецификацию JVM (Java Virtual Machine). Зачем она мне понадобилась я уже и не помню, но в результате родился собственный Java декомпилятор. Родился он, естественно, на коленке, но опыт получился интересный. Затем он немного дописывался и допиливался и в результате даже оказался опубликован на softpedia.com, а хостился он тогда еще на sourceforge.net. И версия его была 1.2.2. И называется он jclazz.

И вот недавно (когда открывал раздел с программами) я про него вспомнил и решил, что он вполне достоин занять тут свое место. Может быть кому-то пригодится, да и вообще, чтобы было :). Прежде чем публиковать его здесь, он был подвергнут жесткому рефакторингу. Кардинально был улучшен графический интерфейс и механизм разбора циклов, в остальном изменения не столь заметные. Также были переработаны автотесты, которые позволяют достичь довольно неплохого качества программулины.



Что он из себя представляет. Это обычный запускаемый jar, который по умолчанию запускает незамысловатый графический интерфейс. Слева отображается дерево пакетов с классами из открытых jar-ков или просто классов. Справа - само содержимое класса, которое может быть представлено в нескольких видах

  • декомпилированный исходный код
  • листинг класса в читаемом виде, но сами команды представлены в нативных командах JVM

Переключение происходит посредством менюшки Options.



Есть у этой программы и определенные ограничения:

  • Декомпиляция протестирована для классов скомпилированных javac от JDK 1.3-1.6, до 1.7 и тем более 1.8 руки пока не дошли.
  • Безусловные переходы на метку (типа continue label) скорее сведут с ума, но может и нет - не проверял.

Без багов, как обычно, тоже не обошлось. Если найдете - присылайте автору, то есть мне :). Также можете присылать свои пожелания, что хотелось бы увидеть итд, по возможности будем их учитывать.

Скачать jclazz. Перед использованием распаковать.
Для работы программы требуется установленная Java (JRE или JDK). Если вы дружите с ней, то запустить не составит труда - javaw -jar jclazz.jar.

Для пользователей Windows предусмотрен специальный файл jclazz.cmd для запуска. Он сам найдет установленную Java. Скачать Java SE 7 или 8 можно с официального сайта Oracle.

jclazz in English



© 2019 МеАндр | Обратная связь

Яндекс.Метрика