jvm 由于安全策略,java找不到主类

zte4gxcn  于 2022-11-23  发布在  Java
关注(0)|答案(1)|浏览(144)

我正在运行一个java应用程序,如下所示,我的策略文件在同一个文件夹中,它给出了以下错误。如果我运行它而不指定策略相关的参数,它运行良好。任何想法,我在这里做错了什么,如何修复它?谢谢。
错误:无法找到或加载主类-Djava.security.policy==quantanywhere.policy
安全管理器-安全管理器-安全管理器-安全管理器
my.policy文件内容:

grant {
    permission java.security.AllPermission;
};
jgzswidk

jgzswidk1#

我知道了。

1创建一个策略文件并授予所有权限

grant {
    permission java.security.AllPermission "", "";
};

2在命令行中指定策略文件

-Djava.security.manager -Djava.security.policy==/path/my.policy

3创建自定义安全管理器类

public class MySecurityManager extends SecurityManager
{
    @Override
    public void checkExec(String cmd) 
    {
        throw new RuntimeException( "Cannot execute shell script" );
    }
}

4激活自定义安全管理器

SecurityManager securityManager = new MySecurityManager();
    
    System.setSecurityManager( securityManager );

5就是这样。您的应用程序无法再执行shell命令/脚本

相关问题