在没有默认Java.policy文件的情况下运行Java Security Manager

在没有默认Java.policy文件的情况下运行Java Security Manager,java,security,securitymanager,Java,Security,Securitymanager,我不想修改java主目录中的任何内容,但是,我担心有时候我的默认java.policy文件可能过于宽松。当我使用-Djava.security.manager选项运行java时,是否有办法将指定的策略文件用作唯一的策略文件 如果我添加一个-Djava.security.policy=myPolicy.policy选项,它会在默认策略文件之外使用我的策略文件——这是不好的,因为它看起来默认策略文件中授予的所有权限仍然被授予。: 要使用SecurityManager和默认Java安全策略运行 是$

我不想修改java主目录中的任何内容,但是,我担心有时候我的默认java.policy文件可能过于宽松。当我使用
-Djava.security.manager
选项运行java时,是否有办法将指定的策略文件用作唯一的策略文件

如果我添加一个
-Djava.security.policy=myPolicy.policy
选项,它会在默认策略文件之外使用我的策略文件——这是不好的,因为它看起来默认策略文件中授予的所有权限仍然被授予。

:

  • 要使用SecurityManager和默认Java安全策略运行 是$JAVA_HOME/jre/lib/security/JAVA.policy:

    java-Djava.security.manager Main

  • 使用SecurityManager和 仅自定义安全策略(忽略默认java安全性) 政策):

    java-Djava.security.manager-Djava.security.policy==security.policy Main

  • 使用SecurityManager和默认java安全策略运行 首先,然后是您的自定义安全策略:

    java-Djava.security.manager-Djava.security.policy=security.policy Main

  • 如果你不想要一个安全管理器,那就干脆省去吧 避免任何混淆


哇。。。我没想到这会起作用,所以使用==作为强制执行器是违反直觉的。@TacB0sS我确信做出此更改的Sun作者没有将其发送给代码审阅:-D