Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
通常,签名 JAR 文件的验证将由 Java™ 运行时环境负责。你的浏览器将验证它下载的签名 applets。使用解释器的 -jar 选项调用的签名应用程序将由运行时环境验证。
但是,你可以使用 jarsigner
工具自行验证签名的 JAR 文件。你可能希望这样做,例如,测试你已准备好的已签名 JAR 文件。
用于验证签名 JAR 文件的基本命令是:
jarsigner -verify jar-file
此命令将验证 JAR 文件的签名,并确保存档中的文件自签名后未发生更改。如果验证成功,你将看到以下消息:
jar verified.
如果你尝试验证未签名的 JAR 文件,则会出现以下消息:
jar is unsigned. (signatures missing or not parsable)
如果验证失败,则会显示相应的消息。例如,如果自 JAR 文件签名以来 JAR 文件的内容已更改,则在尝试验证文件时将产生类似于以下内容的消息:
jarsigner: java.lang.SecurityException: invalid SHA1 signature file digest for test/classes/Manifest.class
java.home/lib/security/java.security
文件(其中 java.home
是安装 JRE 的目录) 的 jdk.jar.disabledAlgorithms
安全属性中指定的任何算法,则 JDK 将签名的 JAR 文件作视为未签名文件。