2015-03-24 3 views
0

У меня есть jar без источника, и я хотел бы изменить один файл класса внутри него. Однако всякий раз, когда я экспортирую jar, извлеките класс, который будет помещен обратно внутри, он никогда не будет работать одинаково.Изменить один класс в заранее скомпилированном банке?

Каковы правильные шаги по замене класса в банке? (Я могу видеть содержимое класса, рассматривая его с JDGUI)

+0

Это совсем не просто, чтобы снять. Вы уверены, что не можете получить исходный код или найти способ дизайна вокруг него? – tmn

+0

Я хотел бы внести свои изменения в него, и я не могу найти источник нигде. – user3813948

+0

Возможно, вы сможете попробовать какой-то странный бад-код обратного инженерного вуду, но даже тогда я не знаю, понравится ли JRE. И если байт-код запутан, вы, вероятно, не повезло. – tmn

ответ

0

Если вы изменяете подписи класса и боятся, что вы нарушаете что-то в пределах скомпилированного кода, то вы, вероятно, следует сделать следующее:

разархивировать .jar и запустить декомпилятор Java (например, Jad). Затем вы можете изменить файл, который хотите, сколько хотите. Перестройте все и упакуйте в новый файл .jar.

+0

Банку огромно, и в ней есть тонны библиотек. Я попробовал это и наткнулся на тонны ошибок декомпиляции. – user3813948

Смежные вопросы