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

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

如果我添加-Djava.security.policy=myPolicy.policy选项,除了默认策略文件之外,它-Djava.security.policy=myPolicy.policy使用我的策略文件 – 这很糟糕,因为它看起来仍然授予默认策略文件中授予的所有权限。

Java SecurityManager的常见错误 :

  • 使用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

  • 如果您不想要SecurityManager,那么只需省略java.security.policy以避免任何混淆。