*什么* Java"安全设置阻止本地应用程序运行"?

时间:2013-07-12 11:22:23

标签: java html security applet settings

我有一个简单的测试applet,它应该绘制一个小三角形(并且在命令行中使用appletviewer Triangle.class工作正常)但是当我尝试在浏览器中查看Triangle.htm时,我得到了这个消息(来自Java本身,据我所知,而不是我的Firefox或Chrome):

  

“您的安全设置已阻止本地应用程序运行。”

但是,我无法弄清楚要更改的设置。我尝试将一般设置放在最低位置(称为“中等”哈哈,这就像咖啡店里的杯子尺寸一样 - 哦。对。)但是这样做不起作用,如果解决方案被埋在某处更高级的选择,这对我来说是非常明显的......:/

这个问题听起来像我的问题

Java Error: "Your security settings have blocked a local application from running"

但是原来的海报说:“解决了:问题在于编译器使用的是JDK6而不是JDK7。”

我在重新编译类文件之前检查了我的最新版本:

> java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode, sharing)

> javac Triangle.java

无论如何,任何人都可以看到他们是否遇到同样的问题并告诉我你是如何解决的?

为了便于复制,这是类文件的来源:

Triangle.java

import java.awt.*;
import java.applet.Applet;
public class Triangle extends Applet {
    public void paint (Graphics g){
        int bottomX=80;
        int bottomY=200;
        int base=100;
        int height=100;
        g.drawLine(bottomX,bottomY,bottomX+base,bottomY);
        g.drawLine(bottomX+base,bottomY,bottomX+base/2,bottomY-height);
        g.drawLine(bottomX+base/2,bottomY-height, bottomX,bottomY);
    }
}

这是包含类文件的文件夹中的htm:

Triangle.htm

<applet code="Triangle.class" width=400 height=400></applet>

2 个答案:

答案 0 :(得分:4)

我刚刚使用Java版本1.7.0_25-b17尝试了您的代码。在这里看到的两个较低设置下,它在浏览器中运行良好。

Java Control Panel - Security Tab

要使其在最高安全级别工作,需要将其放入Jar并使用有效证书进行签名。

答案 1 :(得分:0)

正式声明(甲骨文对我校团队电子邮件的回复),即使您将安全设置设置为绝对最小值(使用我的applet多次),一些较旧的虚拟机仍然可能会导致applet发出安全警报。我想这是一个学校/学习工作(因为它是一个小程序),所以它可能值得尝试直接由appletviewer运行。