我正在使用HTML与Java小程序进行交互的HTML页面上工作.小程序的HTML页面,javascript文件和.jar文件将在本地部署到用户文件系统上的文件夹中.
(将其作为独立的Java应用程序进行扩展不是这里的选择;由于种种原因,我将不在此处进行解释).
小程序需要执行本地文件I / O.因此,我试图对用户.java.policy文件中的设置进行tweek允许.
我发现以下设置是唯一可行的设置:
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";
};
这是使用以下配置运行的:
> Firefox 3.6.10
> Java 1.6更新25
> Windows 7 64位
设置此.java.policy文件时我哪里出错了?
我对Java世界特别是生锈,尤其是使用applet的时候,我很生锈-因此,感谢您的专业知识!
解决方法:
要连接具有访问权限的Applet,请使用以下策略工具设置:
转到policyTool,您将在以下路径中找到它:
java->jdk1.3->bin->policyTool Application
出现“策略工具”窗口.
在“策略工具”窗口中,选择“添加策略条目”按钮.
这将带您到“策略输入”窗口
在那里输入CodeBase作为“ file:/ java bin的路径”.例如
CodeBase file:/c:/java/jdk1.3/bin/
现在,在“策略输入”窗口中按“添加权限”按钮.
这将带您进入“权限”窗口
从权限下拉列表框中选择“所有权限”.
然后点击“确定”.
现在,再次在“策略输入”窗口中按“添加权限”按钮.
现在,从权限下拉列表框中选择“选择” RunTimepermission”.
现在,在“目标名称”下拉列表框中选择“ accessClassInpackage”,在文本框中输入accessClassInpackage.sun.jdbc.odbc
现在单击“确定”.
现在,在“策略输入”窗口中单击“完成”.
现在在Policy Entry窗口中,文件-> save
将其保存在Java安装的“ bin”中.
记住名字…
例如说..
小程序权限
‘救’
现在,您已经创建了可供访问的策略文件
现在在命令提示符下编译Java文件
javac programname.java
要运行程序,请在cmd提示符下键入以下内容:
appletviewer -J-Djava.security.policy=appletpermission programname.java
现在一切都完成了.