Можно ли восстановить src из развернутого файла.WAR?

Я работаю со многими устаревшими приложениями здесь. Один из них (развернутый в производственной среде) необходимо отредактировать, поскольку он не имеет журнала.

Я декомпилировал его, но понятия не имею, как собрать его в этой ситуации. Я не смог даже перекомпилировать де-классы, отредактированные из-за оптимизации компилятора.

(Я использую Java 6)

Извините, если мой английский плохой, я просто младший

2 ответа

Нет. Файл WAR - это всего лишь специализированный файл JAR, который содержит, помимо скомпилированного байт-кода, файлы JSP, статические файлы HTML и файл дескриптора, который сообщает веб-серверу, как развернуть приложение. То, что он не содержит, является исходным кодом. Это означает, что ваши единственные варианты - работа с декомпилированным кодом или запрос исходных кодов у оригинальных разработчиков.

Как вы обнаружили, компиляция и декомпиляция являются процессами с потерями, поэтому вы не можете вообще перекомпилировать декомпилированный код, и даже если он компилируется, он может не совпадать с исходным двоичным файлом.

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

Другие вопросы по тегам