使用logback的java.security.policy问题
以下代码使用LOG4J(和SLF4J)运行文件: 当将依赖项切换到“logback”而不是log4j时,它给出:使用logback的java.security.policy问题,java,slf4j,logback,Java,Slf4j,Logback,以下代码使用LOG4J(和SLF4J)运行文件: 当将依赖项切换到“logback”而不是log4j时,它给出: 01:05:37.702 [main] DEBUG test.TestMain - Policy location: ./src/main/config/java.policy Exception in thread "main" java.security.AccessControlException: access denied (java.util.PropertyPermi
01:05:37.702 [main] DEBUG test.TestMain - Policy location: ./src/main/config/java.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 test.TestMain.main(TestMain.java:18)
在主方法的最后一行
java.policy文件的内容:
grant {
permission java.security.AllPermission;
};
将java.policy文件放在“$java_HOME/jre/lib/security”中可以解决这个问题
任何人都可以告诉我发生了什么事吗?我发现我们有3种解决方法: 1) 在初始化记录器之前初始化SecurityManager
2) 将$java_HOME/jre/lib/security中的java.policy替换为您的
3) 启动应用程序时将java.policy的位置作为系统属性传递:-Djava.security.policy=java.policy我发现我们有3个选项来解决这个问题: 1) 在初始化记录器之前初始化SecurityManager
2) 将$java_HOME/jre/lib/security中的java.policy替换为您的
3) 启动应用程序时,将java.policy的位置作为系统属性传递:-Djava.security.policy=java.policy这是我的问题还是log4j 2.0仍然不受欢迎?我给了你一个运行的例子来重现,但似乎没有人知道如何修复它。我在启动RMI注册表的代码中使用了SecurityManager。是我自己还是这个log4j 2.0仍然不受欢迎?我给了你一个运行的例子来重现,但似乎没有人知道如何修复它。我在启动RMI注册表的代码中使用SecurityManager。
grant {
permission java.security.AllPermission;
};