我的小程序的 .java.policy 条目有问题。
我会尝试使用小程序创建文件夹和文件。我已经签署了我的 jar 并在 ${user.home}/.java.policy-file 中添加了以下几行:
grant {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
有了这些添加的行,我的小程序效果很好,但这不是一个好的风格,因为任何地方的每个 jar 也变成了文件权限。
在 oracle 页面上的示例将 codeBase 设置为指定的 applet.jar 并将 signedBy(jar 文件签名的别名)设置为大权限。
我已经尝试了很多次,但它不起作用。
我试过的代码:
grant codeBase "http://www.wkmovies.de/appletDemo/-" {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
或者
grant signedBy "AKlettke" {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
我已将此示例上传到:www.wkmovies.de/appletDemo/index.html
我如何设置策略文件,我的小程序可以工作?
这是我的代码片段:HTML:
<a href="javascript:document.applet1.createFolder();">
Create Folder at C:\\Temp
</a>
<applet name="applet1" id="applet1" width="0" height="0" alt=""
archive="applets/Demo.jar,applets/lib/commons-lang-2.4.jar"
code="demo.FolderCreator.class">
</applet>
文件夹创建者类:
try {
File f = new File("C:\\temp");
f.mkdir();
JOptionPane.showMessageDialog(null, "folder created",
"successfull", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage(),
e.getClass().getName(), JOptionPane.ERROR_MESSAGE);
}
(JDK1.6.0_23, Firefox 3.0.19, WinXP 32bit)