Байт-код в исходный код Java

Вопрос: Можно ли преобразовать файл .class файл .java? Как это может быть сделано? Как насчет правильности кода, извлеченного из этой опции? Лучший ответ: Это возможно. Для этого нужен Java Decompiler. В основном вы найдете удивительно хорошую работу. То, что вы получите, является допустимым .java файлом, который будет скомпилирован в файл .class, но этот файл .java

Вопрос:

Можно ли преобразовать файл .class файл .java?

Как это может быть сделано?

Как насчет правильности кода, извлеченного из этой опции?

Лучший ответ:

Это возможно. Для этого нужен Java Decompiler.

В основном вы найдете удивительно хорошую работу. То, что вы получите, является допустимым .java файлом, который будет скомпилирован в файл .class, но этот файл .java не обязательно будет таким же, как исходный исходный код. Такие вещи, как конструкции цикла, могут возникать по-разному, и все, что компилирует время, например, дженериков и аннотаций, не будет воссоздано.

У вас может возникнуть проблема, если код был запутан. Это процесс, который изменяет файлы классов, чтобы затруднить их декомпиляцию. Например, имена классов и переменных изменяются, чтобы все были похожи, поэтому в итоге вы получите код типа aa.a(ab) вместо employee.setName(name), и очень сложно разобраться, что происходит.

Я помню, как это делал JAD, но я не думаю, что это активно поддерживается, поэтому он может не работать с никогда не версиями Ява. A Поиск Google для декомпилятора java даст вам много вариантов.

Ответ №1

Да, попробуйте JAD Java Decompiler

Ответ №2

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

Ответ №3

Добавление к предыдущим ответам: недавно появилась новая волна декомпиляторов, а именно Procyon, CFR, JD, Fernflower

Вот список современных декомпиляторов по состоянию на март 2015 года:

  • Процион
  • CFR
  • JD
  • Fernflower

Вы можете протестировать выше упоминание декомпиляторов онлайн, не требуется установка и сделать свой собственный образованный выбор.
декомпиляторы Java в облаке: http://www.javadecompilers.com/

Ответ №4

Возможно, но код, который вы получите, может быть неправильным. Однако поиск некоторых декомпиляторов Java.

Ответ №5

Это всегда возможно. Найдите “jass disassembler”.

Но комментарии исходного кода и временные переменные не будут доступны.

Если вы декомпилируете класс и видите, что код слишком сложный с именами переменных, а имена методов похожи на a, b, c…, это означает, что проект запутан.

Ответ №6

Не совсем декомпилятор, но JDK содержит javap, дизассемблер:

javap -c org.example.MyClass

В зависимости от вашей учетной записи вам может быть интересно узнать или использовать.

Обратите внимание, что результаты декомпиляции файла класса зависят от включенной информации в файле класса. Если я правильно помню, включал отладочную информацию (видеть -g флаг javac), особенно для обозначения переменных и т.п.

Ответ №7

Я использую JAD, но позже переключился на другой, что, на мой взгляд, лучше – здесь

Ответ №8

DJ – это простой в использовании java decompiler. Просто откройте любой файл .class, и он покажет вам его код java.

Кроме того, вы можете использовать jadClipse плагин для eclipse, чтобы напрямую декомпилировать .class в .java

What about the correctness of the code extracted from this option?
В любом случае код, который будет сгенерирован любым декомпилятором java, не будет таким же, как и в оригинальном классе java. Поскольку он просто декодирует байт-код в java-код. Единственное, что вы можете быть уверены, это то, что результат будет таким же, как и исходный код Java.

Ответ №9

Вам нужен декомпилятор. www.Decompiler.com – хороший онлайн-декомпилятор.

Оцените статью
Добавить комментарий