.java.policy文件和本地applet

时间:2011-05-23 15:51:24

标签: java applet policyfiles

我正在使用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";
};

这是使用此配置运行的:

  • Firefox 3.6.10
  • Java 1.6 update 25
  • Windows 7 64位

我在设置这个.java.policy文件时出错?

我对Java世界非常生疏,尤其是使用applet - 所以我们非常感谢您的专业知识!

2 个答案:

答案 0 :(得分:4)

要在此处连接具有访问权限的Applet,请使用策略工具设置:

转到policyTool,您将在以下路径中找到它:

java->jdk1.3->bin->policyTool Application

出现Policy Tool窗口 在Policy Tool窗口中,选择“Add Policy Entry”按钮。 这将带您进入Policy Entry窗口

将CodeBase输入为“file:/ java bin的路径”。例如

CodeBase   file:/c:/java/jdk1.3/bin/

现在按下Policy Entry窗口中的“Add Permission”按钮 这将带您进入“权限”窗口

从权限下拉列表框中选择“所有权限” 然后点击“确定”。

现在再次按下Policy Entry窗口中的“Add Permission”按钮。

现在从权限下拉列表框中选择“选择”RunTimepermission。 现在在Target Name下拉列表框中选择“accessClassInpackage”,在文本框中输入accessClassInpackage.sun.jdbc.odbc

现在点击“确定”。

现在点击“政策输入”窗口中的“完成”。

现在在Policy Entry窗口文件中 - &gt;保存 将其保存在Java安装的“bin”中。 记住名字...... 比如说.. appletpermission '保存'

现在您已创建了一个用于访问的策略文件

现在在命令提示符下编译你的java文件

javac programname.java

要运行程序,请在cmd提示符下键入以下内容:

appletviewer -J-Djava.security.policy=appletpermission programname.java

现在一切都已完成。

答案 1 :(得分:0)

不要浪费你的语法时间,而是使用政策工具:

click here : Policy Tool