【问题标题】:sign a Jar file签署一个 Jar 文件
【发布时间】:2013-01-30 23:40:33
【问题描述】:

我在 jar 中手动添加了一些类文件。并在服务器中替换。但是服务器没有拿出这个新的 jar 说:java.lang.SecurityException: class "test.TestProcess2"'s signer information does not match the other classes in the same package.

我是否需要在更新后对 jar 签名以及如何做。

提前致谢

【问题讨论】:

标签: java jarsigner jar-signing


【解决方案1】:

是的。

您也可以为命令行手动签名 jar。例如,在 windows 中,它看起来更像是这样的:

"{YOUR_JDK_INSTALL_PATH}\bin\jarsigner.exe" -verbose -keystore {YOUR_KEYSTORE_PATH} -storepass {YOUR_STORE_PASS} -keypass {YOUR_KEY_PASS} {JAR_FILE}

【讨论】:

    【解决方案2】:

    更新后需要对jar签名吗?

    当然,签名 jar 的关键在于内容不会被除您之外的其他人修改。如果你手动修改,那你就得辞职了。

    在我的例子中,我使用 Eclipse 和 Ant 来构建项目。所以每次我重建项目时,jar 都会被辞职。

    <signjar jar="myapplet.jar" keystore="myKeyStore" alias="me" storepass="pass"/>
    

    【讨论】:

      【解决方案3】:

      问题在于您的 JAR 中的其他类与您添加的类的签名不同。添加新类后,要么不签署整个 JAR,要么退出 JAR。可以找到jarsigner工具here的信息

      【讨论】:

        猜你喜欢
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        • 2010-11-01
        • 2010-11-19
        • 2020-06-10
        • 1970-01-01
        相关资源
        最近更新 更多