【问题标题】:Self signing jar file, doesn't find JarSigner class自签名 jar 文件,找不到 JarSigner 类
【发布时间】:2013-09-05 23:08:04
【问题描述】:

我正在尝试签署我的 java 小程序。 我运行以下几行来创建证书:

keytool -genkey -keystore myKeyStore -alias ben
keytool -selfcert -keystore myKeyStore -alias ben

到目前为止一切正常。它需要密码和一些详细信息并创建 MyKeyStore 文件。

然后我运行这一行:

jarsigner -keystore myKeyStore nnis.jar ben

但它所做的只是告诉我:

Error: Could not find or load main class sun.security.tools.JarSigner

文件 tools.jar(其中存在 JarSigner.class)位于“PATH”中,为了确定,我还将它复制到我运行 jarsigner 命令的本地目录。

我做错了什么?

我将不胜感激任何建议 - 解决问题或绕过它。

【问题讨论】:

  • “我做错了什么?”开头.. “我把文件tools.jar(里面有JarSigner.class)放在同一个我运行命令的目录。” 不要那样做。将 JRE 的组件留在安装它们的位置,并将该位置添加到路径中。
  • 谢谢安德鲁,我也将目录添加到路径中,但没有帮助(我编辑了问题,所以它会很清楚......)
  • 忘记 PATH。 JAR 文件不是在 PATH 上搜索,而是在 CLASSPATH 上搜索,或者在本例中,直接在 JDK 或 JRE 的安装目录中搜索。在您开始毫无意义地摆弄它之前,只需将整个 JDK 或 JRE 恢复原状。必要时重新安装。

标签: java keytool jarsigner jar-signing


【解决方案1】:

Jarsigner.exe 相对于它自己的位置搜索 tools.jar。在JDK中,它们位于:

<jdk-install-folder>\bin\jarsigner.exe
<jdk-install-folder>\lib\tools.jar

只要保持相同的相对文件夹结构,它应该会找到 JarSigner 类。例如,如果您的 jarsigner.exe 在 C:\Temp\YourFolder\jarsigner.exe 中,则应将 tools.jar 放入 C:\Temp\lib\tools.jar强>。

【讨论】:

    猜你喜欢
    • 2010-11-01
    • 2021-08-23
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 2017-12-10
    • 2018-06-29
    相关资源
    最近更新 更多