Java 需要客户端权限才能访问资源的我的小程序的策略文件位置在哪里?

Java 需要客户端权限才能访问资源的我的小程序的策略文件位置在哪里?,java,security,permissions,applet,Java,Security,Permissions,Applet,我发现我必须写一个策略文件来授予小程序的权限 但我真的很困惑…:( 我想写一个小程序,这是一个地图查看器,我需要保存在客户端运行我的小程序本地访问瓷砖的图像瓷砖,以获得速度和时间安全地查看地图,这是有益于用户 因此,小程序需要授予读/写权限,并在客户端tempdir上创建目录 现在,我想写一个策略文件来获得对我的小程序的权限,我不想让用户参与其中,相反,我想自己写一个策略文件来授予小程序的权限 现在,策略文件的位置在哪里?在applet jar文件中? 小程序如何使用策略文件 请帮助我简单的答案

我发现我必须写一个策略文件来授予小程序的权限

但我真的很困惑…:(

我想写一个小程序,这是一个地图查看器,我需要保存在客户端运行我的小程序本地访问瓷砖的图像瓷砖,以获得速度和时间安全地查看地图,这是有益于用户

因此,小程序需要授予读/写权限,并在客户端tempdir上创建目录

现在,我想写一个策略文件来获得对我的小程序的权限,我不想让用户参与其中,相反,我想自己写一个策略文件来授予小程序的权限

现在,策略文件的位置在哪里?在applet jar文件中? 小程序如何使用策略文件


请帮助我

简单的答案是不,您不能远程更改策略。如果您可以在用户的计算机上覆盖策略,安全性在哪里

在企业环境中,这可以通过桌面管理/资源调配系统实现。如果要测试,可以手动更新策略文件。它位于Windows上的此处

  ${user.home}\java.policy
  ${java.home}\lib\security\java.policy

第一个更改单个用户的策略,第二个影响整个系统。

使用策略文件不是一个好主意,因为它太复杂,用户无法编辑。 相反,你应该获得一份证书(每年花费200-400美元)并签署你的小程序。这将允许你访问文件

您可以尝试免费生成的测试证书。
可能会有帮助。

您需要对小程序进行签名,然后将文件操作包装在一个特权代码块中,如下所示

            final String location = locationVal;

    File f = (File) AccessController.doPrivileged(new PrivilegedAction()
    {
        public Object run()
        {
            System.out.println("Getting File : " + location);
            File outputFile1 = new File(location);
            return outputFile1;
        }
    });
为了便于参考,JRE策略文件的默认位置如下

在windows计算机上

C:\Program Files\Java\JRE Version\lib\security\Java.policy

Java 6 update 13策略存储在此处

C:\Program Files\Java\jre1.6.0\u 13\lib\security\Java.policy


如上所述,在没有访问计算机的权限的情况下,您无法编辑此文件。

阅读了所有这些评论后,我仍然感到困惑。我的问题是您需要签署并修改策略文件,还是只需签署小程序。我相信这是最初的问题。