用java.util.jar編的打包,jaroutputstream包含manifest帶version,classpath和mainclass(Attributes.Name),
每一個entry後寫入byte[]後關閉entry,最後finish和關閉流。打包後可以解壓縮,將manifest復制到另一個eclipse手動打的包下可以正常使用。
用beyondcompare3比較兩jar,大小相同,解壓縮後所有文件二進制相同,但自動的包就是找不到主類。
java1.8,windows7 64,類路徑是.,主類是test.Helloworld,自動和手動的包在同意目錄下,cd後分別java -jar xxx.jar
問題解決,還是謝謝上面的朋友了,打包jar時的問題,entry一定應該用“/”,而不是“\”,解壓縮時兩者都能識別,而java用url讀取class路徑只能識別前一種。