jarsigner.exe 是包含在 JDK 裏面的一個小程式,在一般人下載的 JRE 是沒有的。我平時都用 eclipse 寫 java 程式,根本也用不到 JDK。如果只是單單為了 jarsigner.exe 去下載整套 JDK,看起來也不怎麼划算。所以就想說直接把 jarsigner.exe 從 JDK 內截取出來。

第一步很簡單就是直接 copy jarsigner.exe 出來,執行結果發現少了一個 jli.dll。在同一個目錄內發現 jli.dll,拷貝再執行一次,結果出現 Could not find the main class: sun.security.tools.JarSigner.。

這個問題就頭大了,完全沒有頭緒,不知怎麼解決,上 google 也查不到,進 JDK 也找不到 JarSigner.class。最後才發現,原來 JarSigner.class 藏在 jdk\lib\tools.jar 里面,只要執行 java -classpath tools.jar sun.security.tools.JarSigner,就等同於執行 jarsigner.exe。

最後,為了方便執行,建了一個批次檔 jarsigner.bat,裏面只有一行指令 "java -classpath tools.jar sun.security.tools.JarSigner %*",再加上 tools.jar,就完成 jarsigner 的截取。以後只要執行 jarsigner.bat -keystore demo.keystore demo.jar mykey 即可,完全跟 jarsigner.exe 用法一模一樣。

台南小新 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • 訪客
  • Exception in thread "main" java.lang.NoClassDefFoundError: sun/security/tools/Ke
    yTool