使用java.security.AccessControlException从javascript调用signed applet函数:拒绝访问

时间:2012-03-04 04:45:42

标签: java javascript applet accesscontrolexception

大家好!

我有一个签名的applet(用html命名的结果),其功能如下:

    public  void killApplet() 
    {   
        AccessController.doPrivileged(new PrivilegedAction<Object>(){
           //@Override
           public Object run() {
           // kill the JVM
           System.exit(0); // or any other line here
           String str = "any string";
           return null;
        }
    }); 
    }

Java脚本代码如下:

    function exec_java() {
        document.result.killApplet();
    }

当我点击按钮执行java函数时:

<button type="button" id="buttontest" onclick="exec_java()">test</button>

它显示如下例外:

java.security.AccessControlException: access denied

(java.io.FilePermission C:\Program Files\Java\jdk1.6.0_18\bin read)

我使用的是带有IE版本的Windows XP,如下所示:

IE 7

愿景:7.0.5730.13

任何专家,并告诉我如何使这个例外消失? 另外,这里奇怪的是我可以调用一个没有问题的简单函数,如下所示:

       public int getNumberOfLines(){
            return number_of_lines;
       }

任何帮助将不胜感激! PS:不能发布任何图像显然我是'新'! 有没有人使用过工作样本?

    AccessController.doPrivileged(new PrivilegedAction<Object>()

谢谢!

吴碧

1 个答案:

答案 0 :(得分:0)

// kill the JVM
System.exit(0);

applet是可能托管其他applet的网页中的guest虚拟机。致电System.exit(n)就像烧毁宾馆的客人一样。 不要这样做!因此,即使是受信任的applet也不允许调用该方法。

结束小程序的更好方法是致电:

showDocument(thanksForUsingOurAppletURL);