Java 部署规则集不起作用

Java 部署规则集不起作用

我创建了一个如下所示的 Java 部署规则集:

<ruleset version="1.0+">
    <rule>
        <id location="http://hpfweb.mydomain.com/" />
        <action permission="run" version="1.6.0_20" />
    </rule>
    <rule>
        <id location="http://*.mydomain.com" />
        <action permission="run" />
    </rule>
    <rule>
</ruleset>

我创建了一个自签名证书,并将其添加到密钥库以及受信任的证书颁发机构中。我有一个应用程序http://hpfweb.mydomain.com需要 Java v1.6.20,如果尝试任何其他版本,都会出错。只有当计算机上安装了此版本时,应用程序才能运行。但是,如果安装了较新的版本,则无法运行。如您所见,我已尝试在规则集中将版本强制为 1.6.0_20。

我已确认部署规则集已成功应用,方法是进入 Java 控制面板 --> 安全并“查看活动部署规则集”。它与您在此处看到的完全一样。我还查看了该应用程序的 Web 源代码,所有引用都指向http://hpfweb*链接。

当小程序启动时,我启动了任务管理器并确认启动的 java.exe 来自 jre6 目录。

当安装新版本时,我收到错误“accesscontrolexception - 访问被拒绝(java.awt.AWTPermission.accessEventQueue)。

答案1

您的规则集文件不是有效的 xml。因为最后一个元素<rule>只是一个开始元素。缺少结束元素。有效的空 xml 元素应为<rule />

<ruleset version="1.0+">
    <rule>
        <id location="http://hpfweb.mydomain.com/" />
        <action permission="run" version="1.6.0_20" />
    </rule>
    <rule>
        <id location="http://*.mydomain.com" />
        <action permission="run" />
    </rule>
</ruleset>

答案2

看看代码的最后三行。我认为你那里多了一个“”。另外,如果我没记错的话,你根本不需要第二条规则,因为如果规则集中未指定版本,它应该使用最新版本。

相关内容