Использование Java Decompiler (JD-GUI) для файла .class дает мне несколько ошибок в файле src, но он хорошо работает в .jar?Как это работает? - PullRequest
1 голос
/ 20 сентября 2019

Я новичок в Java и пытаюсь что-то понять.Мне удалось получить файл .jar для локального устройства для связи с моим ноутбуком.Он работает нормально, но я хотел бы сделать обновление и черпать коды и изменить некоторые детали.Я использовал Java Decompiler для файла .jar и сумел взглянуть на файлы классов.Однако всякий раз, когда я декомпилирую их в исходные коды, в моей среде IDE возникают ошибки, и я не могу их собрать.Что именно случилось?Если он работает нормально в .jar, почему он выдает ошибки?

1 Ответ

0 голосов
/ 20 сентября 2019

Компиляция - это процесс с потерями, поэтому декомпиляция всегда является попыткой "наилучшего усилия".Байт-код Java имеет необычайно высокий уровень, поэтому декомпиляция Java относительно проста по сравнению с другими языками, но она никогда не будет завершена на 100%.Поэтому вы не должны удивляться, увидев ошибки при повторной компиляции декомпилированного источника.

Если вы хотите работать напрямую с байт-кодом, я бы порекомендовал использовать дизассемблер и ассемблер Кракатау *1004*.Вместо декомпиляции в исходный код Java дизассемблер преобразует байт-код в читаемый человеком формат сборки, который специально разработан для преобразования в байт-код и из него без потерь.Однако для этого требуется хорошее понимание байт-кода Java низкого уровня.

...