将 JRE 更新到 1.7 update45 后,我的 Eclipse(3.6) Web Start 应用程序无法再启动。我尝试在 jar list 中添加以下安全属性来解决它。
- 权限:所有权限
- 代码库:*
- 应用程序名称:应用程序
但是当我修改Eclipse JAR(签名的JAR)的manifest并使用自己的证书退出后,启动时会弹出异常:Manifest主要属性的签名文件摘要无效
我的问题是:
当使用java 1.7_45时,是否必须将这些安全属性添加到所有应用程序JARS(包括Eclipse JARS)的 list 中?
如果是强制性的,我如何为 Eclipse JARS 添加这些属性? Eclipse JARS 已经签名,我们无法轻易修改 list 。
有人可以帮我吗?
最佳答案
首先提出您的问题:
- 如果您要进行自签名,您应该创建自己的 keystore 并告诉 Eclipse 使用它来签署您的 .jar。这样,当您添加必要的 list 属性时,您可以重复使用相同的 keystore 来放弃您的 .jar。不要告诉 Eclipse 使用生成的 keystore 进行自签名。大约一半的路程this page有关如何创建您自己的 keystore 的说明(注意:这只能作为临时修复,您应该远离自签名应用程序。请阅读本文的底部)。
- 我可能是错的,但如果您通过文本编辑器添加 list 属性,那将不起作用。我不确定为什么,但我尝试通过文本编辑器添加它们,但没有成功。您应该将需要添加的内容放入文本文件中,并通过控制台中的命令
jar ufm dist\myApp.jar addToManifest.txt
添加 list 属性。
不是你的问题,但很重要:
自 7u25 起已弃用自签名 key 。如果您在企业工作或者您有使用软件的客户,那么我会告诉他们您需要来自 Certificate Authority 的签名证书。 。即使是小企业也应该能够负担得起少量的证书费用。如果您是拥有多个客户的承包商(像我一样),那么这是非常值得的。 事实上,将来这将是强制性的。所以,咬紧牙关吧。
编辑:有关如何添加 list 属性和重新签名的更多信息,请访问此线程:How do I fix "missing Codebase, Permissions, and Application-Name manifest attribute" in my JNLP app? 。不过,您需要一个非 Eclipse 生成的 keystore 。
关于java - RCP Web Start 停止使用 Java 7 更新 45,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19678362/