1

将 JRE 更新到 1.7 update45 后,我的 Eclipse(3.6) Web Start 应用程序无法再启动。我尝试在 jar 的清单中添加以下安全属性来解决它。

  • 权限:所有权限
  • 代码库:*
  • 应用程序名称:应用程序

但是在我修改了Eclipse JAR(一个签名的JAR)的清单并使用我自己的证书退出后,它在启动时弹出异常:Invalid signature file digest for Manifest main attributes

我的问题是:

  1. 使用 java 1.7_45 时,是否必须将这些安全属性添加到所有应用程序 JARS(包括 Eclipse JARS)的清单中?

  2. 如果是强制性的,如何为 Eclipse JARS 添加这些属性?Eclipse JARS 已经签名,我们不能轻易修改清单。

有谁能够帮我?

4

1 回答 1

1

首先你的问题:

  1. 如果您要自签名,您应该创建自己的密钥库并告诉 Eclipse 使用它来签署您的 .jars。这样,当您添加必要的清单属性时,您可以重用相同的密钥库来为您的 .jar 签名。不要告诉 Eclipse 使用生成的密钥库进行自签名。该页面的大约一半有关于如何创建自己的密钥库的说明(注意:这只能作为临时修复,您应该远离自签名应用程序。阅读这篇文章的底部)。
  2. 我可能是错的,但是如果您通过文本编辑器添加清单属性,那将不起作用。我不知道为什么,但我尝试通过文本编辑器添加它们,但它不起作用。您应该将需要添加的内容放在一个文本文件中,并通过jar ufm dist\myApp.jar addToManifest.txt控制台中的命令添加清单属性。

不是你的问题,但很重要:

自签名密钥自 7u25 起已弃用。如果您为企业工作或者您有使用软件的客户,那么我会告诉他们您需要来自Certificate Authority的签名证书。即使是小型企业也应该能够负担得起证书所需的少量费用。如果你是一个有多个客户的承包商(比如我),这是非常值得的。事实上,它将在未来成为强制性的。所以,咬紧牙关。

编辑:有关如何添加清单属性和重新签名的更多信息,请访问此线程:如何在我的 JNLP 应用程序中修复“缺少代码库、权限和应用程序名称清单属性”?. 不过,您将需要一个非 Eclipse 生成的密钥库。

于 2013-10-31T12:40:19.273 回答