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

标签 java eclipse java-web-start rcp jnlp

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

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

但是当我修改Eclipse JAR(签名的JAR)的manifest并使用自己的证书退出后,启动时会弹出异常:Manifest主要属性的签名文件摘要无效

我的问题是:

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

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

有人可以帮我吗?

最佳答案

首先提出您的问题:

  1. 如果您要进行自签名,您应该创建自己的 keystore 并告诉 Eclipse 使用它来签署您的 .jar。这样,当您添加必要的 list 属性时,您可以重复使用相同的 keystore 来放弃您的 .jar。不要告诉 Eclipse 使用生成的 keystore 进行自签名。大约一半的路程this page有关如何创建您自己的 keystore 的说明(注意:这只能作为临时修复,您应该远离自签名应用程序。请阅读本文的底部)。
  2. 我可能是错的,但如果您通过文本编辑器添加 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/

相关文章:

java - 如何在 WebStart 进程中使用 JMX RMI 代理?

java - SQL的IN子句中如何使用arraylist作为参数

java - 二叉树的递归插入

java - javax.websocket.Session api

java - 使用 Eclipse IDE 将外部 JAR 添加到 Gluon 项目?

java - 从在其他计算机上运行的 jar 文件创建 exe

Java Web 启动 : How to write files to windows UNC Path?

java - 计算我的程序的 Big O 复杂度

Java多线程: unexpected execution time

java - 登录失败