我需要创建一个部署规则集,决定是使用Java 1.6.0_31还是1.8.0_45执行应用程序(webstart或applet)。最初我想将1.6.0_31用于所有内部开发的应用程序,然后逐渐将1.8.0_45用于经过验证与Java 8兼容的特定应用程序。由于所有这些应用程序都是使用我们自己的证书签名的,我的想法是使用此证书作为规则集中的标准。这是我的初始配置:
<rule>
<id location="--myserver--"/>
<action permission="run" version="1.6.0_31" force="true"/>
</rule>
对于webstart应用程序,此配置的工作方式与我预期的一样。不幸的是,我遇到了小程序时遇到的问题。当我在浏览器中启动applet时,一条错误消息声称未安装所需的Java版本1.6.0_31。可以在Firefox和Internet Explorer中重建此行为。我和#34; 1.6&#34;,&#34; 6&#34;,&#34; 1.6 *&#34;还有更多作为规则集中版本属性的值,但没有任何效果。我尝试的最后一件事是将此规则添加到规则集的顶部:
{{1}}
突然我的applet启动了,它使用了Java 6.
有人知道为什么我的初始配置对小程序不起作用吗?我真的想了解部署规则集机制如何工作以及我在初始配置中的错误。
答案 0 :(得分:0)
两个可能的问题。
如果缺少XML标头,我注意到DRS存在一些不规则性。在文件中放置标题可以解决我遇到的类似问题。
可能导致问题的另一件事是Java文档声明“Force”选项适用于1.1及更高版本。
“示例28-6 强制使用特定JRE” http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_rules.html