Eu costumava trabalhar com BeyondCompare
e foi capaz de comparar *.class
arquivos, configurando-o para executar um decompilador antes da comparação.
Existe algo assim para WinMerge
? Ou um plug-in que pode fazer isso?
Eu passei o dia escrevendo um plugin DLL para Winmerge para fazer isso - não é a melhor coisa do mundo, mas faz o trabalho.
Obtém o nome do arquivo, divide-o no diretório e nome da classe e, em seguida, chama o javap para cada arquivo de classe. É um pouco lento, infelizmente (culpa do javap eu diria).
Eu coloquei a DLL aqui:
http://www.locusia.com/winmerge/displayclassfiles.dll
Absolutamente nenhuma licença, garantia, etc. Nenhum trojans ou vírus também. Eu vou dar a volta para limpar a fonte e colocá-la em algum lugar (provavelmente com as pessoas do projeto winmerge).
Crie um diretório "MergePlugins" onde seu executável do winmerge está e coloque a dll nele. É ativado automaticamente em arquivos * .class.
A parte mais difícil foi descobrir como iniciar o javap, a programação do Windows é tão ruim.
Seria bom se o winmerge comparasse os arquivos antes de descompactá-los para ver se eles são diferentes - isso economizaria um pouco de tempo. Talvez isso possa ser feito no plug-in de alguma forma, mas como eu disse, eu acabei de hackear isso o mais rápido que pude.
Oh, devo mencionar que você precisará do javap no seu caminho.
EDIT: código-fonte está aqui: http://www.locusia.com/winmerge/unpackjavaclassfiles%20source.7z Construído usando visual studio 2005 - Adaptado do plugin DisplayBinaryFiles que está disponível com o pacote fonte winmerge.