Файл .Jar имеет ошибки компиляции при декомпиляции, но работает правильно

1

Я загрузил исполняемый файл .jar и использовал Java Decompiler для извлечения источников. Я импортировал их в Eclipse, он показывает мне несколько компиляционных ошибок, таких как неправильные типы или вызовы невидимым методам. Поэтому я не могу запустить проект, не исправляя все.

Как возможно, что файл .jar функционирует должным образом, даже если декомпилятор четко показывает, что есть логические ошибки? Связано ли это с тем, что уровень компилятора более старый (я использую 1.8, в то время как он изначально был скомпилирован с использованием 1.6 или 1.7)? Разве совместимость не поддерживается? Декомпилятор допустил ошибки?

  • 1
    Декомпилятор может ошибаться; плюс код может быть преднамеренно испорчен с последующей компиляцией инструментом запутывания
  • 0
    Что такое "невидимый метод"?
Показать ещё 4 комментария
Теги:
decompiler

1 ответ

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

Как возможно, что файл.jar функционирует должным образом, даже если декомпилятор четко показывает, что есть логические ошибки?

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

Декомпилятор допустил ошибки?

Вероятно. Бывает. Написав декомпилятор Java, я могу сказать вам, что это ничего, кроме простого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню