首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法启动jstatd.exe来远程监视应用程序?

无法启动jstatd.exe来远程监视应用程序?
EN

Stack Overflow用户
提问于 2015-03-12 06:42:19
回答 1查看 2.3K关注 0票数 1

今天对你们大家都很好。

我想使用jstatd来监视JVM、GC、Heap和一些运行在远程机器上的应用程序的一些重要指标。

当我尝试通过命令行从java路径的bin文件夹执行命令jstatd.exe时,我得到以下错误:

代码语言:javascript
复制
C:\Program Files (x86)\Java\jdk1.6.0_38\bin>jstatd.exe
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(AccessControlConte
    xt.java:374)
            at java.security.AccessController.checkPermission(AccessController.java:
    549)
            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).

当我们在互联网上检查这个错误时,我们知道,我们必须添加一些在链接cannot start jstatd due to permission error中提到的安全文件。但是,我们还是会犯同样的错误。

有人能帮我们解决这个问题吗。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-06-03 07:22:50

使用cmd检查您的Java版本--在我的例子中,我的java版本是1.7,所以它没有工作--这是问题所在,请按照下面的正确版本更新您的策略文件:

代码语言:javascript
复制
grant codebase "file:C:/Program Files/Java/jdk1.7.0_51/lib/tools.jar" {
   permission java.security.AllPermission;
};

现在像下面这样运行jstatd

代码语言:javascript
复制
C:\Program Files\Java\jdk1.7.0_51\bin>jstatd -p 1234 J-Djava.security.policy=D:
\jstatd.all.policy

希望它能成功!

注意:尝试从visualVM (您的远程主机)连接这个port1234,否则将无法工作。

编辑:

For JDK1.6

政策档案:

代码语言:javascript
复制
grant codebase "file:C:/Program Files/Java/jdk1.6.0_45/lib/tools.jar" {
   permission java.security.AllPermission;
};

jstatd命令:

代码语言:javascript
复制
C:\Program Files\Java\jdk1.6.0_45\bin>jstatd J-Djava.security.policy=D:/jstatd.
all.policy -p 1234
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29003372

复制
相关文章

相似问题

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