首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >权限错误,无法启动jstatd

权限错误,无法启动jstatd
EN

Stack Overflow用户
提问于 2012-03-30 16:58:16
回答 6查看 65.3K关注 0票数 62

我尝试在linux机器上运行jstatd jvm监控工具

jboss@hostAddr:/usr/java/jdk1.6.0_18/bin> uname -a
Linux hostAddr 2.6.16.60-0.34-smp #1 SMP Fri Jan 16 14:59:01 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux

使用以下命令:

jstatd -J-Djava.security.policy=~/jstatd.all.policy

jstatd.all.policy内容

grant codebase "file:${java.home}/../lib/tools.jar" {

   permission java.security.AllPermission;

};

不幸的是,我得到了以下输出:

Could not create remote object
access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses 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 sun.tools.jstatd.Jstatd.main(Jstatd.java:122)

由于某些原因,jstatd使用相同的命令和策略文件在windows上成功运行。

Linux java版本:

java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)

Windows java版本:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
EN

回答 6

Stack Overflow用户

发布于 2013-03-02 23:29:00

刚刚找到了下面的脚本来运行jstatd。我设法用这个脚本https://gist.github.com/nicerobot/1375032运行了jstatd

#!/bin/sh
policy=${HOME}/.jstatd.all.policy
[ -r ${policy} ] || cat >${policy} <<'POLICY'
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
POLICY

jstatd -J-Djava.security.policy=${policy} &
票数 69
EN

Stack Overflow用户

发布于 2012-06-01 00:30:00

你指定的路径是错误的吗(我是)?

尝试将策略放在/tmp/jstatd.all.policy中,然后运行:

jstatd -J-Djava.security.policy=/tmp/jstatd.all.policy
票数 2
EN

Stack Overflow用户

发布于 2019-12-22 10:20:20

如果你使用的是Java11,你需要查看这个答案:Starting jstatd in Java 9+ - Stack Overflow

策略文件如下所示:

grant codebase "jrt:/jdk.jstatd" {    
   permission java.security.AllPermission;    
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9939883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档