RCP Web Start停止使用Java 7更新45

时间:2013-10-30 09:26:39

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

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

  • 权限:所有权限
  • 代码库:*
  • 申请名称:申请

但是在我修改了Eclipse JAR(已签名的JAR)的清单并使用我自己的证书进行了重新签名之后,它在启动时会弹出异常: Manifest主要属性的无效签名文件摘要

我的问题是:

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

  2. 如果是mandtory,我如何为Eclipse JARS添加这些属性? Eclipse JARS已经签名,我们无法轻松修改清单。

  3. 有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

您的问题首先:

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

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

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