Tôi chưa bao giờ thực sự nhìn vào nó nhưng bây giờ tôi nhận ra rằng tôi không thể dễ dàng xây dựng hai tệp .jar giống hệt nhau.Java/zip: Tại sao các tệp .jar được tạo không xác định?
Ý tôi là, nếu tôi xây dựng hai lần, mà không thay đổi bất cứ điều gì, tôi sẽ có cùng kích thước chính xác nhưng tổng kiểm tra khác nhau cho số .jar.
Vì vậy, tôi nhanh chóng chạy một số kiểm tra (về cơ bản giải nén, loại -n -k 5 'ing và sau đó diff' ing) để thấy rằng tất cả các file bên các .jar là giống hệt nhau, nhưng .jar khác nhau.
Vì vậy, tôi đã làm một thử nghiệm với một đồng bằng .zip tập tin và thấy điều này:
... $ zip 1.zip a.txt
... $ zip 2.zip a.txt
... $ ls -l ?.zip
-rw-rw-r-- 1 webinator webinator 147 2010-07-21 13:09 1.zip
-rw-rw-r-- 1 webinator webinator 147 2010-07-21 13:09 2.zip
(chính xác cùng .zip kích thước tập tin)
... $ sha1sum ?.zip
db99f6ad5733c25c0ef1695ac3ca3baf5d5245cf 1.zip
eaf9f0f92eb2ac3e6ac33b44ef45b170f7984a91 2.zip
(khác nhau SHA-1 số tiền, hãy xem tại sao)
$ hexdump 1.zip -C > 1.txt
$ hexdump 2.zip -C > 2.txt
$ diff 1.txt 2.txt
3c3
< 00000020 74 78 74 55 54 09 00 03 ab d4 46 4c*4e*d5 46 4c |txtUT.....FLN.FL|
---
> 00000020 74 78 74 55 54 09 00 03 ab d4 46 4c*5d*d5 46 4c |txtUT.....FL].FL|
Giải nén cả hai tệp zip chắc chắn sẽ trả về tệp duy nhất của chúng tôi.
Câu hỏi: tại sao vậy? (Tôi sẽ trả lời bản thân mình)
Tại sao bạn đặt câu hỏi khi bạn đã biết câu trả lời? – Gumbo
@Gumbo: Tôi tìm thấy câu trả lời trong khi gõ câu hỏi (tại sao SO cho phép một câu trả lời cho câu hỏi của riêng mình? :) và tìm ra câu hỏi có thể thu hút người khác (trong đó có hai upvotes trong số mười lượt xem có vẻ như chỉ ra :) – SyntaxT3rr0r
Tại sao downvote? – SyntaxT3rr0r