1,首先在服务器端的任意目录建立安全策略的文件jstatd.all.policy内容如下
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
有文章写得是
grant codebase "file:${JAVA_HOME}/lib/tools.jar" {
permission java.security.AllPermission;
};
尝试过后发现不生效,会报各种没权限的错。
有篇文章写得是看缺啥条件,缺了什么权限就往jdk的\JRE\LIB\SECURITY下把java.policy文件的
grant{
。。。。。
};添加该权限,后面发现需要添加一堆,权限,还去特地查了查java.policy的通配方法。
其实如果刚刚的安全策略的文件jstatd.all.policy如果生效的或是不会报缺少权限的错误的。
因为赋了java.security.AllPermission;
之所以file:${JAVA_HOME}/lib/tools.jar 不生效的原因在于
jstatd 工具是走jvm的,不走linux,所以${JAVA_HOME}是不是别的。
需要配置为 file:${java.home}/../lib/tools.jar 。 ${java.home}被识别为jstatd命令执行的目录即 ${JAVA_HOME}/bin 。