Раньше я работал с BeyondCompare
и он смог сравнить *.class
, настроив его для запуска декомпилятора перед сравнением.
Есть ли что-то подобное для WinMerge
? Или плагин, который может сделать это вместо этого?
Раньше я работал с BeyondCompare
и он смог сравнить *.class
, настроив его для запуска декомпилятора перед сравнением.
Есть ли что-то подобное для WinMerge
? Или плагин, который может сделать это вместо этого?
Я потратил день на написание плагина DLL для Winmerge, чтобы сделать это - это не самая лучшая вещь в мире, но она выполняет свою работу.
Принимает имя файла, разбивает его на каталог и имя класса, затем вызывает javap для каждого файла класса. Это довольно медленно, к сожалению (ява виноват, я бы сказал).
Я поместил DLL здесь:
http://www.locusia.com/winmerge/displayclassfiles.dll
Абсолютно нет лицензии, гарантии и т.д. Нет троянов или viii. Я найду способ почистить источник и где-нибудь его поднять (вероятно, с людьми из проекта winmerge).
Создайте каталог "MergePlugins", где находится ваш исполняемый файл winmerge, и поместите в него dll. Он автоматически активируется в файлах * .class.
Самым сложным было выяснить, как запустить javap, программирование Windows просто ужасно.
Было бы хорошо, если бы winmerge сравнил файлы перед их распаковкой, чтобы увидеть, отличаются ли они - это сэкономило бы немного времени. Может быть, это может быть достигнуто в плагине, но, как я уже сказал, я просто взломал это вместе так быстро, как мог.
О, я должен упомянуть, что вам понадобится javap на вашем пути.
РЕДАКТИРОВАТЬ: Исходный код здесь: http://www.locusia.com/winmerge/unpackjavaclassfiles%20source.7z Построен с использованием Visual Studio 2005 - Адаптировано из плагина DisplayBinaryFiles, который доступен с исходным пакетом winmerge.