Java 错误:“您的安全设置已阻止本地应用程序运行”

2022-08-31 15:52:19

我正在尝试从我的浏览器(Chrome)运行这个用Java编写的简单HelloWorld代码:

public class HelloWorld extends JApplet {
public void init() {
    try {
        SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
                JLabel lbl = new JLabel("Hello World");
                add(lbl);
            }
        });
    }
    catch (Exception e) {
        System.err.println("createGUI didn't complete successfully");
    }
}

我用 NetBeans 编译了它,然后创建了一个 WebApplication 项目。运行小程序的 HTML 代码是:

<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <p><applet code="HelloWorld" archive="applet_HelloWorld.jar"  width="590" height="530"></applet></p>
    </body>
</html>

如果从 NetBeans 运行小程序,它可以正常工作。但是当我通过双击它来运行HTML代码时,浏览器会弹出以下消息:

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

我尝试使用Internet Explorer和Firefox,但什么都没有。

此消息在 Java 的上次更新后开始出现。问题出在哪里?


答案 1

阅读 Java 7 Update 21 详细介绍安全改进后。.

通过引入的更改,很可能没有最终用户能够在自签名或未签名时运行您的应用程序。

..我想知道这将如何用于松散的类文件 - 所有“最简单”的小程序。

本地文件系统

Dialog: Your security settings have blocked a local application from running
您的安全设置已阻止本地应用程序运行

当 JRE 设置为默认的“高”安全设置时,这是由从本地文件系统加载的松散类文件组成的小程序所看到的对话框。


请注意,JRE的一个轻微怪癖仅在第3点上产生了这一点。

  1. 加载小程序页面以查看导致控制台空的损坏的小程序符号。
    打开 Java 设置并将级别设置为“中”。
    关闭浏览器和 Java 设置。
  2. 加载小程序页面以查看小程序。
    打开 Java 设置并将级别设置为“高”。
    关闭浏览器和 Java 设置。
  3. 加载小程序页面以查看损坏的小程序符号和上面的对话框。

互联网

如果您加载简单的小程序(松散类文件),请参阅可调整大小的小程序演示 - 其中有以下元素:applet

<applet
    code="PlafChanger.class"
    codebase="."
    alt="Pluggable Look'n'Feel Changer appears here if Java is enabled"
    width='100%'
    height='250'>
<p>Pluggable Look'n'Feel Changer appears here in a Java capable browser.</p>
</applet>

它似乎也已成功加载。暗示:-

从本地文件系统加载的小程序现在比从 Internet 或本地服务器加载的小程序受制于更严格的安全沙箱。

安全设置说明

从 Java 7 更新 51 开始。

  • 非常高最安全的设置 - 仅允许运行由来自受信任颁发机构的未过期证书标识的 Java 应用程序。
  • 高(建议的最低要求):将允许运行由来自受信任颁发机构的证书标识的 Java 应用程序。
  • - 在显示安全提示后,将允许所有 Java 应用程序运行。

答案 2

我今天遇到了同样的问题,我能够通过将Java控制面板上的安全设置从 更改为 来解决此问题。HIGHMEDIUM

好吧,不建议将Java安全设置永久设置为MEDIUM,因为这将允许潜在的恶意软件在您的系统上运行而不会被阻止。因此,我建议在运行小程序后,您可能希望将设置更改回HIGH。

Java 控制面板的位置

更改控制面板的设置