授予Java代码库加载的问题

授予Java代码库加载的问题,java,permissions,Java,Permissions,我在应用程序中使用Java安全管理器。我正在经历授予权限的过程,我遇到了一个似乎无法授予的权限。这是加载库的权限。它是$java_HOME/lib/ext目录中的一个java*.jar库 at com.theatsgroup.startup.startup_managers.startup(startup_managers.jav a:98) at com.theatsgroup.startup.app_startup.main(app_startup.java:357) Caused by:

我在应用程序中使用Java安全管理器。我正在经历授予权限的过程,我遇到了一个似乎无法授予的权限。这是加载库的权限。它是$java_HOME/lib/ext目录中的一个java*.jar库

at com.theatsgroup.startup.startup_managers.startup(startup_managers.jav
a:98)
at com.theatsgroup.startup.app_startup.main(app_startup.java:357)
Caused by: java.security.AccessControlException: access denied ("java.lang.Runti
mePermission" "loadLibrary.sunec")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkLink(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
我的授权文件如下:

grant codeBase "file:../bin/atsapp.jar" {
permission java.lang.RuntimePermission "loadLibrary.sunec";
};
下面是我调用Java应用程序的方式:

java -Djava.security.manager -Djava.security.policy==..\cfg\atsapp.security.poli
cy -jar atsapp.jar
有什么想法吗

谢谢

--Justin

因为您正在使用“==”,所以您正在覆盖jvm的“默认”权限。有一个重要的默认授权,您很可能需要在策略文件中复制它,以便让jvm工作。此权限授予作为jvm一部分安装的所有扩展库执行所有“内部”操作所需的权限。不确定为什么这不是内置的,因为jvm没有它就不能做很多事情

grant codeBase "file:${{java.ext.dirs}}/*" {
  permission java.security.AllPermission;
};

这是随jre一起安装的“lib/security/java.policy”文件的开头。您可能希望调查此文件的其余部分,以查看是否需要其他重要的基本权限。

谢谢。我要试一试