【问题标题】:calling signed applet function from javascript with java.security.AccessControlException: access denied使用 java.security.AccessControlException 从 javascript 调用签名的小程序函数:访问被拒绝
【发布时间】:2012-03-04 04:45:42
【问题描述】:

大家!

我有一个签名的小程序(在 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)

我使用的是 Windows XP 和 IE 版本如下:

IE 7

愿景:7.0.5730.13

任何专家,给我一个线索如何使这个异常消失? 此外,这里奇怪的是我可以毫无问题地调用一个简单的函数,如下所示:

       public int getNumberOfLines(){
            return number_of_lines;
       }

任何帮助将不胜感激! PS:不能发布任何图片因为显然我是“新人”! 有人有工作样本吗?

    AccessController.doPrivileged(new PrivilegedAction<Object>()

谢谢!

吴碧

【问题讨论】:

    标签: java javascript applet accesscontrolexception


    【解决方案1】:
    // kill the JVM
    System.exit(0);
    

    小程序是网页中可能托管其他小程序的访客。打电话给System.exit(n) 就像客人烧毁了宾馆。 不要那样做!因此,即使是受信任的小程序也不允许调用该方法。

    结束小程序的更好方法是调用:

    showDocument(thanksForUsingOurAppletURL);
    

    【讨论】:

    • 非常感谢您这么快回答我的问题!我的观点不是“System.exit(0);”这条线。相反,我将其更改为任何其他函数,例如“string a = 'anything';”,我仍然有另一个例外,因为“对象不支持此属性或方法”。我一直在尝试阅读网络上的几乎所有内容。有人真的可以帮我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2011-09-04
    • 2013-10-25
    • 2013-04-20
    • 1970-01-01
    相关资源
    最近更新 更多