2013-12-23 4 views
0

Идея состоит в том, чтобы сравнить две банки и посмотреть, были ли они созданы из того же источника и сравниваются, если они идентичны на уровне двоичного/байтового кода. Также, если они оба скомпилированы с тем же компилятором, то есть компилятором Eclipse JDT или JIT и т. Д.Есть ли инструмент, который мы могли бы использовать для сравнения двух Jars на уровне Binary/Byte?

Я смотрел Apache Common BCEL, но он только делает сравнение после разложения исходного байтового кода в исходный код, а затем сравнивает его как инструмент diff; который сравнивает текст по строкам, но я хотел бы сравнить байт-код, не будучи разложенным/перестроенным в исходный код, а затем сравним.

Я смотрел, как мы можем сравнивать сравнение двоичных/байтовых кодов !!!! рекомендация

Бесплатные инструменты/API будет хорошо :) Та

ответ

1

Мне нравится использовать Beyond Compare (учтите, что это не бесплатное приложение)

http://www.scootersoftware.com/

+1

Преимущество использования Beyond Compare является то, что вы можете создать свой собственный обработчик формата файла, просто указав внешнюю командную строку для выполнения. Я использовал эту возможность для создания сопоставления '.class', который отличает вывод декомпилятора от Procyon. Простая настройка аргументов командной строки приведет к возникновению diff форматированного байт-кода. –

3

вы можете попробовать любой из это следующий инструмент баночки компаратора как основанные на твоем требовании ..

extradata-product бесплатно для личного пользования

zardiff на sourceforge.

japi-compilance-checker ОС на основе

pkgdiff

+0

'extradata-product' делает сравнение после декомпиляции, что не то, что я хочу. Просто повторить. Я хочу сравнить исходный байт-код. –

+1

для проверки обратной и двоичной совместимости API-библиотеки Java на уровне исходного кода вы можете перейти на japi-compilance-checker ... –