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