繁体   English   中英

从签名的Java小程序中删除文件

[英]Deleting files from signed java applet

当他注销应用程序时,我必须从用户系统中删除一些临时文件。 该应用程序具有applet。 小程序罐已签名。 我正在遵循调用applet的destroy方法删除文件的策略。 我正在通过document.myApplet.destroy()之类的javascript调用applet的destroy方法。 调用此后,我在浏览器上收到错误

未捕获的错误:java.security.AccessControlException:访问被拒绝(java.io.FilePermission未捕获的错误:在NPObject上调用方法出错。

好的,我自己得到了答案:在引用此链接http://docs.oracle.com/javase/7/docs/api/java/security/AccessController.html之后 ,我弄清楚了,可以进行读取,写入或删除操作通过将它们包装在AccessController.doPrivileged方法中来完成。

AccessController.doPrivileged(new PrivilegedAction() {

                @Override
                public Object run() {
                    try {
                        deleteAppCacheDirectory();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return null;
                }

            });

您应该从JavaScript代码中删除对destroy方法的调用。 当用户离开页面时,浏览器会自动调用destroy方法。 发生这种情况的原因可能是因为您的destroy方法不是公开的。 但是,这不会阻止浏览器调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM