[英]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.