我正在使用 Javascript 与 Java 小程序交互的 HTML 页面。小程序的 HTML 页面、javascript 文件和 .jar 文件将在本地部署到用户文件系统上的文件夹中。
(将其实现为独立的 Java 应用程序在这里不是一个选项;由于各种原因,我不会在这里解释)。
小程序需要做本地文件 i/o。因此,我试图调整用户 .java.policy 文件中的设置以允许这样做。
我发现以下设置是唯一有效的设置:
grant
{
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
这并不理想,因为它授予所有小程序读写所有文件的权限。自然,我更愿意隔离到特定的代码库。但是我找不到有效的“grant codeBase”语法。
我努力了:
grant codeBase "file:/C:/Files/FileIOApplet/-" {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
grant codeBase "file:///-" {
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
grant codeBase "file:${user.home}/-"
{
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
这是使用此配置运行的:
- 火狐 3.6.10
- Java 1.6 更新 25
- 视窗 7 64 位
在设置这个 .java.policy 文件时我哪里出错了?
我对 Java 世界非常生疏,尤其是在使用小程序时——因此感谢您的专业知识!