2010-01-29 82 views

回答

13

重新壓縮它們。

像這樣(假設UNIX,翻譯到DOS否則):

jar xvf JarName.jar 

rm -rf META-INF 

jar cvf JarName.jar * 

現在你需要運行的jarsigner簽名JAR

jarsigner -keystore /yourkeystoredirectory/mystore -storepass yourpass 
     -keypass yourkeypasswd JarName.jar keyname 

如果你沒有一個密鑰,你可以用keytool創建一個。

+3

「rm -rf META-INF」是一個非常糟糕的主意。這也刪除了像服務目錄這樣的重要文件。 – SkateScout 2015-05-28 21:58:04

1

您可以提取類文件。如果簽名是不是一個你自己,你需要首先其unjar罐子用你的簽名

1

我發現https://www.chemaxon.com/forum/viewpost35555.html#35555

  1. 與「.SF」或從罐子裏面的META-INF文件夾「.RSA」擴展名的文件中刪除一個更好的解決方案。
  2. 從META-INF/MANIFEST.MF中刪除簽名校驗和:應該從META-INF/MANIFEST.MF中刪除每個「名稱」和「SHA1-摘要」字段。

一個更全面的文檔可在Oracle文檔中找到: https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Signed_JAR_File(例如有可能在META-INF文件夾「.DSA」文件和文件‘SIG-’開頭)

相關問題