[英].java.policy file and local applet
我正在使用Javascript与Java applet交互的HTML页面。 applet的HTML页面,javascript文件和.jar文件将本地部署到用户文件系统上的文件夹中。
(将此作为一个独立的Java应用程序,这里不是一个选项;由于各种原因,我不会在这里解释)。
applet需要做本地文件i / o。 因此,我试图调整用户的.java.policy文件中的设置以允许此操作。
我发现以下设置是唯一有效的设置:
grant
{
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
这并不理想,因为它授予所有applet读取写入所有文件的权限。 当然,我更愿意隔离到特定的代码库。 但是我找不到有效的“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";
};
这是使用此配置运行:
我在哪里设置这个.java.policy文件时出错?
我对Java世界非常生疏,尤其是与applet一起工作 - 所以我们非常感谢您的专业知识!
要在此处连接具有访问权限的Applet,请使用以下策略工具设置:
转到policyTool,您将在以下路径中找到它:
java->jdk1.3->bin->policyTool Application
出现Policy Tool窗口。
在Policy Tool窗口中,选择“Add Policy Entry”按钮。 这将带您进入Policy Entry窗口
输入CodeBase作为“你的java bin的文件:/路径”。 例如
CodeBase file:/c:/java/jdk1.3/bin/
现在按“策略条目”窗口中的“添加权限”按钮。
这将带您进入“权限”窗口
从权限下拉列表框中选择“所有权限”。
然后单击“确定”。
现在再次按下Policy Entry窗口中的“Add Permission”按钮。
现在从权限下拉列表框中选择“选择”RunTimepermission。现在在Target Name下拉列表框中选择“accessClassInpackage”,在文本框中输入accessClassInpackage.sun.jdbc.odbc
现在点击“确定”。
现在单击“Policy Entry”窗口中的“done”。
现在,在Policy Entry窗口文件中 - > save将其保存在Java安装的“bin”中。 记住这个名字...比如说.. appletpermission'save'
现在您有一个用于访问的已创建策略文件
现在在命令提示符下编译您的java文件
javac programname.java
要运行程序,请在cmd提示符下键入以下内容:
appletviewer -J-Djava.security.policy=appletpermission programname.java
现在一切都完成了。
不要浪费你的语法时间,而是使用政策工具:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.