como conseguir a mesma compressão no linux e no windows

1

Eu tenho um arquivo example.jar.   Estou tentando atualizar um arquivo de classe no jar.   quando estou empacotando o arquivo de classe usando o utilitário jar ou zip ( linha de comando-linux )

I tried :

jar uf my MyJarFile.jar MyclassFile.class

zip -u my MyJarFile.jar MyclassFile.class

Recebo alguma soma de verificação para assumir XXYYZZ.

Mas quando eu empacotei o mesmo arquivo de classe no windows usando 7zip (GUI) recebi um checksum diferente, digamos, MMNNOO.   Isso é por causa da mudança na taxa de compressão. O tamanho médio também difere.

Agora, minha pergunta é como posso alcançar a mesma taxa de compactação ou seja, a mesma soma de verificação .

EDIT 1: Eu tentei jar em ambas as plataformas. ambos produzem diferentes cksum ...: (

    
por theRoot 07.08.2015 / 14:19

1 resposta

3

A soma de verificação é um hash de todos os bits contidos no arquivo.

O Windows e o Linux / UNIX usam diferentes terminações de arquivo, portanto, criar uma soma de verificação em cada SO com a mesma ferramenta sempre produzirá uma soma de verificação diferente, a menos que você altere especificamente a terminação da linha.

Para verificar se você tem a mesma taxa de compactação, observe o tamanho do arquivo.

O valor pode ser ligeiramente diferente, mas deve ser mínimo.

O ponto das somas de verificação não é ver se dois arquivos criados em momentos diferentes ou em lugares diferentes são iguais, é para verificar se alguém ou alguma coisa mudou um arquivo.

Se eu enviar um zip para você, posso fazer o checksum e enviar o e-mail com o código postal e a soma de verificação que eu criei.

Você recebeu o zip, fez o checksum novamente e, se as somas de verificação forem correspondentes, o arquivo não foi alterado desde que eu as enviei.

EDIT - Estou assumindo com essa resposta que o JAR foi compilado e compactado no Linux, e também compilado e compactado no Windows

    
por 07.08.2015 / 14:55