当前位置: 首页 > 知识库问答 >
问题:

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

谷飞星
2023-03-14

我正在尝试从我的浏览器(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项目。运行applet的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运行applet,它就可以工作了。但是当我通过双击HTML代码运行HTML代码时,浏览器会弹出以下消息:

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

我尝试了Internet ;Explorer和Firefox,但没有成功。

这个消息是在Java的上一次更新之后开始出现的。问题出在哪里?

共有1个答案

皇甫通
2023-03-14

在阅读了Java7更新21的安全改进之后,详细提到…

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

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

JRE设置为默认的“high”安全设置时,会出现一个包含松散类文件的applet的对话框,该applet从本地文件系统中加载。

请注意,JRE的一个小怪癖只在第3点产生了它。

  1. 加载applet页面以查看导致空控制台的断开的applet符号。
    打开Java设置并将级别设置为Medium。
    关闭浏览器和Java设置。
  2. 加载applet页面以查看applet。
    打开Java设置并将级别设置为高。
    关闭浏览器和Java设置。
  3. 加载applet页面以查看一个断开的applet符号&上面的对话框。

如果您从internet中加载这个可调整大小的applet演示中看到的简单applet(松散类文件),它拥有一个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或本地服务器加载的小程序更严格的安全沙箱的约束。

从Java7更新51开始。

  • 非常高:将允许运行由受信任的权威机构的未过期证书标识的大多数安全的仅设置Java应用程序。
  • 高(建议的最低值):将允许运行由受信任的权威机构的证书标识的Java应用程序。
  • Medium-所有Java应用程序在出现安全提示后将被允许运行。
 类似资料:
  • 我正在尝试从我的浏览器(Chrome)运行这个用Java编写的简单HelloWorld代码:

  • 我在一个网站上有一个java小程序(http://martinogames.x10.mx/),但它被java安全设置阻止了。它是在处理过程中使用AppletMaker工具创建的签名applet。我知道如何允许访问我的计算机(java安全设置为中等/白名单网站),但我想知道如何让java为其他用户接受它。我是开发人员,应该有权访问这样做所需的所有信息,如果可能的话。 提前谢谢,-Peperonone

  • 问题内容: 我的应用程序正在发生什么是有道理的,但我不知道如何解决。这是我的应用程序的简要说明:计时器窗​​口应显示在屏幕的右下角,并显示实时时间。一个小时后,它应该执行一些操作(我还没有决定要执行的操作)。我面临的问题是,在 Timer.java中, 当我刷新实时计时器的秒数时,我正在使用线程睡眠,这阻止了我的所有应用程序继续执行,因此没有窗口显示。 这是带有一些注释的代码: TimerFram

  • 我制作了一个网站,它会打开一个带有以下JavaScript代码的弹出窗口: 此代码将标记添加到标记。 然后在JS中,我想用以下代码获得YouTube网站的标题: 所以我想有这个代码: 不幸的是,我的浏览器(谷歌Chrome),仍然打印一个错误: SecurityError:阻止了原点为“null”的帧访问跨原点帧。 知道如何解决这个问题吗?

  • 将应用程序打包为jar并使用嵌入式HTTP服务器的最大优势之一是,您可以像运行任何其他程序一样运行应用程序。 调试Spring Boot应用程序也很容易。 您不需要任何特殊的IDE插件或扩展。 本节仅涉及基于JAR的包装。如果选择将应用程序打包为WAR文件,则应参考服务器和IDE文档。 3.7.1 从IDE运行 您可以从IDE运行Spring Boot应用程序作为简单的Java应用程序。 但是,您

  • 每当我尝试运行我的应用程序时,屏幕截图中的窗口就会弹出。声明找不到默认活动,因此我无法部署我的应用程序: 我的代码清单文件 这就是我点击运行时得到的窗口- 我的代码的Gradle文件: