java - 如何从 NetBeans 中为特定应用程序设置 security.policy 文件?

标签 java netbeans security-policy

我在尝试弄清楚如何让 NetBeans 读取特定应用程序的策略文件时遇到了一些麻烦——实际上是很多麻烦。请看下面的代码:

      public static void main(final String[] args)
      {
          System.setSecurityManager(new SecurityManager());
          System.setProperty("java.security.policy","file:/C:/Users/kBPersonal/Documents/NetBeansProjects/JAASTest/JAASTest.policy");

          EventQueue.invokeLater(new Runnable()
          {
              public void run()
              {
                  JFrame frame = new JAASFrame();
                  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                  frame.setVisible(true);
              }
          });
      }

无论我做什么,我都会收到以下错误,这让我知道 NetBeans 没有读取我的 security.policy 文件(我什至将它的位置添加到 C:\Program 中的主 security.policy 文件中文件 (x86)\Java\jre6\lib\security\java.security)。顺便说一句,第 20 行是我尝试设置 System.setProperty("java.security.policy, ...)

的地方
     Exception in thread "main" java.security.AccessControlException: access denied (java.util.PropertyPermission java.security.policy write)
     at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
     at java.security.AccessController.checkPermission(AccessController.java:546)
     at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
     at java.lang.System.setProperty(System.java:725)
     at JAASTest.main(JAASTest.java:20)

非常感谢任何帮助!

最佳答案

如果您使用 System.setProperty() 方法添加您的策略文件,请确保它在您创建 SecurityManager 之前。我之前使用过 SecurityManagerSystem.setProperty() 方法,在我创建 SecurityManager 之前调用它通常有效。

关于java - 如何从 NetBeans 中为特定应用程序设置 security.policy 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6061722/

相关文章:

java - 如何从二维对象数组中获取数据?

java - 使用 QBOVendorService 的 NPE

java - 指定 Java 安全策略的远程代码库

c# - 创建具有完全信任权限(包括网络权限)的托管 CLR AppDomain

java - 尝试解密 RSA 时出错

java - 输入大小为 ~ 2Mb 的 Hadoop mapreduce

Java Swing + Hibernate + Maven

Netbeans:复制插入符号/光标所在的单词

java - 如何水平打印 jframe 或为其赋予打印属性?