【问题标题】:RCP Web Start stops working with Java 7 update 45RCP Web Start 停止使用 Java 7 更新 45
【发布时间】:2013-11-09 19:07:34
【问题描述】:

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

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

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

我的问题是:

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

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

谁能帮帮我?

【问题讨论】:

标签: java eclipse java-web-start rcp jnlp


【解决方案1】:

你的问题首先:

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

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

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

编辑:有关如何添加清单属性和重新签名的更多信息,请访问此线程:How do I fix "missing Codebase, Permissions, and Application-Name manifest attribute" in my JNLP app?。不过,您需要一个非 Eclipse 生成的密钥库。

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多