[英]Java applet: AccessControlException again
再次有签署的小程序的特权问题。
我希望我的自签名小程序从本地驱动器中删除文件,但出现异常:
java.security.AccessControlException: access denied
(java.io.FilePermission /Users/me/tmp.txt delete)
在这里,我调用删除:
public void deleteFile( String path )
{
AccessController.doPrivileged( new Deleter( path ));
}
此类删除文件:
class Deleter implements PrivilegedAction {
public Deleter( String path ) {
m_path = path;
}
public Object run()
{
File file = new File( m_path );
file.delete();
return null;
}
private String m_path;
};
HTML代码是:
<APPLET CODE="HelloWorld.class" ARCHIVE="SignedHelloWorld.jar" WIDTH=600 HEIGHT=25>
<PARAM NAME="MAYSCRIPT" VALUE="true">
</APPLET>
解决了:
我需要添加策略(在OS X下):
cat >> ~/.java.policy
grant {
permission java.io.FilePermission "<<ALL FILES>>", "delete";
};
要授予权限,小程序需要一个策略文件。 这定义了他们可以对用户系统执行的操作。 您可以在此处找到更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.