На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Java FAQ
1. Данный раздел предназначен только для публикации готовых статей, с вопросами обращайтесь в соответствующие подразделы.
2. Все вопросы, связанные с ошибками или неточностями в представленных материалах направляйте модераторам персональным сообщением.
3. Все темы и сообщения в разделе премодерируются. Любое сообщение или тема будут доступны остальным участникам после одобрения модераторами.
Модераторы: dark_barker, wind
  
> Декомпиляторы Java. , статья из старых Java FAQ
    Java-декомпиляторы HOW-TO

    Эта документация поможет Вам декомпилировать Java-классы. Здесь приведен список декомпиляторов, которые помогут Вам получить при этом файлы исходных кодов Java. Это поможет Вам, если у Вас есть только класс-файлы, а надо видеть исходный код. Информация здесь применима ко всем операционным системам, где запущена JVM.

    Введение

    (Английская версия этого документа лежит тут. Вы можете посмотреть там, если ищете последнюю обновленную версию).
    Java-компилятор компилирует файлы исходных кодов Java (*.java) в бинарники (*.class). Вы можете использовать декомпилятор для конвертирования java-классов в файлы исходных кодов (*.java).
    Java-декомпилятор будет очень полезен, если имеются в наличии только *.class-файлы и нет доступа к исходникам. Некоторые разработчики не распространяют исходные коды вместе с бинарниками и в этом случае декомпилятор будет просто незаменим.
    См. также команду "javap" от Sun Microsystems из стандартного набора jdk.
    В unix, в командной строке наберите:

    ExpandedWrap disabled
      bash$ javap -help
      bash$ javap -c <filename>.class

    Могу ли я доверять Java-декомпиляторам ?!

    Для стопроцентной гарантии необходимо научное (прим. перев. - не знаю почему автор тут сделал акцент, забавно звучит =)) обоснование для доверия результатам, выводимым Java-декомпиляторами.
    Чтобы проверить правильность генерации Java-декомпилятором исходного кода используйте следующую методику:
    Создайте класс-файл из кода, сгенерированного компилятором:

    ExpandedWrap disabled
      bash$ mv myprogram.class myprogram_orig.class
      bash$ javac myprogram.java

    Теперь используйте комманду 'diff' (в unix) чтобы сличить два класс-файла:

    ExpandedWrap disabled
      bash$ diff myprogram.class myprogram_orig.class

    Оба эти файла должны быть идентичны. Это доказывает то, что декомпилятор работает правильно. В DOS или Windows вы можете использовать свободнораспространяемую Cygnus Cygwin 'diff' или 'MKS' утилиты.
    Эти действия дают 100% гарантии и 100% качества использования декомпиляторов. Рекомендуется проделывать эти действия каждый раз, когда вы используете декомпилятор (прим. перев. - ну это уж слишком :) )

    Ссылки
    Итак, список доступных Java-декомпиляторов:

    Список декомпиляторов в Google Directory

    [Автор - Al Dev (Alavoor Vasudevan), перевод и дополнения - Angie]

    Выдержка из переведенного how-to. Копирайт:

    Цитата Лицензия GNU/GPL
    Дополнительные требования - вы упоминаете имена авторов, email адреса и это требование для всех копий. Если Вы изменили или дополнили этот документ, то вы должны указать всех авторов изменений.
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0181 ]   [ 16 queries used ]   [ Generated: 26.04.24, 09:12 GMT ]