禁用sun签名的jar验证

时间:2012-05-10 13:56:31

标签: jar jvm java-web-start

尝试在构建路径.war package中发布包含commons-configuration-1.3.jar的Web Start应用程序的(com.sun.deploy.net.JARSigningException)时,我遇到了很多麻烦。

我已经尝试清理javaws缓存,重新安装应用程序,甚至重新安装java (1.6.0_24)

创建NetBeans IDE 6.8 (Build 200912041610)应用程序时,这是JNLP输出的一部分:

Warning: 
The signer certificate will expire within six months.
Signing JAR: D:\Java\workspace\OTP\DeskOTP\atual\build\cluster\modules\ext\commons-configuration-1.3.jar to D:\Java\workspace\OTP\DeskOTP\atual\build\jnlp\app\br-com-petrobras-ep-gedig-gedigdesktoplibrary\ext-commons-configuration-1.3.jar as jnlp

然而,当我试图跑步时,我得到了这个罐子的JARSigningException

所以,我决定解决此问题,禁用此验证。我相信我可以决定并告诉jvm不要验证我的罐子(我的责任)。

有没有告诉jvmjavaws永远不要验证未签名的jars

2 个答案:

答案 0 :(得分:4)

作为第一反应,我想说试试java -noverify -jar your_file.jar.

但是,这只适用于本地jar文件。它不适用于网络资源,这听起来像你正在尝试做的事情。是吗?

答案 1 :(得分:0)

您可以随时从网上下载jar,手动删除清单上的签名部分,它应该可以正常工作。如果jar正好像其他回复中提到的@Riking一样从网上动态下载,那么你可以通过将URL代理到另一台服务器来解决这个问题。

现在,如果您可以访问部署构建状态并且在工件上有过期签名的问题,则可以使用您公司的(Petrobras?)签名证书重新签名jar。这将允许您解决过期的问题,前提是构建知道它应该提取您的工件版本而不是原始的公共配置。