尝试使用JarSigner.exe签署apk文件时出现NoClassDefFoundError

时间:2014-04-18 09:21:35

标签: java android apk noclassdeffounderror jarsigner

我尝试使用文件JarSigner.exe(在Windows中)签署一个Android应用程序。

我所做的是创建一个指定的目录,我将JarSigner.exe和所有其他文件放在JRE \ bin中。

当然我也把密钥库文件放在那里。

我打开了一个cmd窗口(作为管理员)并将dir更改为我创建的指定目录。

我给了命令:

jarsigner -keystore myKeystore myApp.apk myself

结果如下:

Exception in thread "Main Thread" java.lang.NoClassDefFoundError: sun/security/t
ools/JarSigner
Caused by: java.lang.ClassNotFoundException: sun.security.tools.JarSigner
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: sun.security.tools.JarSigner.  Program will exit.

有人知道为什么会这样,或者我该如何解决?

2 个答案:

答案 0 :(得分:0)

  

我所做的是创建一个指定的目录,我将JarSigner.exe与JRE中的所有其他文件一起放置

那是你的错。你应该做的是调整PATH以包含JDK bin目录,或者在运行它时提供jarsigner,exe的完整路径。

答案 1 :(得分:0)

您必须将tools.jar添加到您的类路径中,您可以查看此链接以获取更多信息

how you can add JAR in to Classpath in Java