java 7 中的 java 安全设置阻止了小程序

Applet blocked by java security settings in java 7

我正在尝试部署测试演示小程序。小程序代码如下


import java.applet.Applet;
import java.awt.Graphics;

public class TestApplet extends Applet{

    public void paint(Graphics gh){
        gh.drawString("hello world", 300, 200);
    }
}

我还使用了包含在包含以下行的 jar 中的清单文件

权限:沙盒

应用程序名称:Applet 演示

然后我使用 jarsigner 和包含来自 thawte 的受信任证书的密钥库对 jar 进行了签名。 Jarsigner 还可以使用适当的证书链验证已签名的 jar。我还在系统中安装了 .p12(keystore) 文件

之后,我尝试通过 Chrome 浏览器从本地服务器加载小程序。以下是我的 html 代码

<html>
<Title>Applet Testing</Title>
<hr>
<applet code="TestApplet.class"
    archive="SignedTestApplet.jar"
    width="480" height="320">
<param name="Permissions" value="sandbox"/>
<param name="Application-Name" value="Applet Demo"/>
</applet>
<hr>
<html>

完成上述所有步骤后,我收到以下弹出响应


您的安全设置已阻止应用程序使用 运行 java

的过时或过期版本

我正在使用 java 7 update 60,如果我从 Java 控制面板将安全级别设置为中等,它就可以工作,但我必须保持高级别。

我的程序是否有缺陷或应该做什么??

请推荐我。

您有几个选择:

  1. 安装 newer version of Java(Java 8 现在可用)。如果你去 Chrome 中的 about:plugins,你可以在这里找到 Java 以及你的浏览器使用的版本(这里也有一个 'Always Allowed' 复选框,但它似乎没有对我有影响)。
  2. 使用标志 --allow-outdated-plugins 开始 Chrome - 请参阅相关的 Chrome help page 了解相关信息。
  3. 从 Java 控制面板将安全级别设置为中(如您在问题中所述)。

您正在尝试通过已更改的旧方法加载 java 小程序。引入了一种使用 JNLP(Java 网络启动协议)的新方法。请尝试按照 LINK

中描述的说明部署您的小程序

来自 Java 7 所有 Java 版本的更新 10 已发布 expiration date. Whenever a critical patch update (CPU),旧版本已过期。

自 7u60 以来,Java 7 已发布 3 CPUs。您应该更新到 7u75 或 7u76。