Как редактировать файл класса Java в EAR-файле - PullRequest
0 голосов
/ 23 июня 2011

Мне нужно отредактировать одну строку кода в EJB. Я импортирую ухо в затмение, но не могу понять, как редактировать файлы .class. Я могу просматривать их с помощью Jadclipse, но я не могу их редактировать. Я отредактировал файл .class вручную и поместил исправленный файл .java в EJB и попытался экспортировать ухо, но он просто удалил мой .java. Я думаю, мой вопрос на самом деле, как мне перекомпилировать мой файл .java в свой проект. Мне нужно импортировать EAR, отредактировать файл .class и затем экспортировать его как EAR. Этот проект был написан для бизнеса, с которым я заключил контракт более 4 лет назад. Разработчик, который написал это, больше не с нами. Так что все, что у меня есть, это EAR. Любая помощь приветствуется.

Ответы [ 5 ]

1 голос
/ 23 июня 2011

Вы можете попробовать декомпилировать файлы классов обратно в Java с помощью инструмента декомпиляции, такого как JD:

http://java.decompiler.free.fr/

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

1 голос
/ 23 июня 2011

Получите себе хороший редактор гекса.

0 голосов
/ 24 июня 2011

EAR-файл - это просто zip-файл.Переименуйте его в .zip, и вы сможете просмотреть его в WinZip или в любом другом месте.
Тогда, если вам повезет, вы можете декомпилировать файл и создать любые необходимые вам моды (я говорю, что вам повезло, потому что это зависит от того, как файл был скомпилированобфусцировано или без отладочной информации).
Используйте ANT для перестройки EAR (см. Как мне создать файл EAR со сборкой ant, включающей определенные файлы? или какой-либо другой ресурс)
Вам следуетхорошо идти, просто заново разверните новый EAR.

0 голосов
/ 23 июня 2011

Вы не можете редактировать файл класса, но вы можете попытаться редактировать байт-код во время выполнения, попробуйте javassist

0 голосов
/ 23 июня 2011

Вы не редактируете файлы .class.Это файлы .java, которые вы редактируете, а затем компилируете в файлы .class.Я предполагаю, что .java файлы должны быть там, если вы можете просмотреть их и обновить.Конечно, бессмысленно пытаться вернуть .java обратно и экспортировать, поскольку среда выполнения потребует .class.

Конечно, если это EJB-код внутри EAR, вполне возможно, что онлибо сгенерированный код, либо код, который должен быть запущен через EJB-компилятор для получения правильного EJB-компонента.

...