【问题标题】:.java.policy file and local applet.java.policy 文件和本地小程序
【发布时间】:2011-08-31 06:37:59
【问题描述】:

我正在处理一个使用 Javascript 与 Java 小程序交互的 HTML 页面。小程序的 HTML 页面、javascript 文件和 .jar 文件将在本地部署到用户文件系统上的文件夹中。

(这里不能将它作为一个独立的 Java 应用程序来实现;由于各种原因,我不会在这里解释)。

applet 需要做本地文件 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
  • Windows 7 64 位

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

我对 Java 世界非常生疏,尤其是使用小程序时 - 所以您的专业知识值得赞赏!

【问题讨论】:

    标签: java applet policyfiles


    【解决方案1】:

    不要在语法上浪费时间,改用策略工具:

    click here : Policy Tool

    【讨论】:

      【解决方案2】:

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

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

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

      出现策略工具窗口。
      在策略工具窗口中选择“添加策略条目”按钮。 这将带您进入策略输入窗口

      将 CodeBase 输入为“file:/path of your java bin”。例如

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

      现在在“策略条目”窗口中按“添加权限”按钮。
      这将带您进入“权限”窗口

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

      现在再次按下策略条目窗口中的“添加权限”按钮。

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

      现在点击“确定”。

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

      现在在策略条目窗口文件->保存 将其保存在 Java 安装的“bin”中。 记住名字... 比如说.. 小程序权限 '保存'

      现在您已经创建了一个访问策略文件

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

      javac programname.java
      

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

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

      现在一切都完成了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-25
        • 2021-11-27
        • 1970-01-01
        • 2012-10-05
        • 2013-05-21
        • 2011-05-14
        • 2021-12-29
        相关资源
        最近更新 更多