由于权限错误而无法启动jstatd

迈克尔·内斯特连科:

我尝试在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)
LightDye:

这对我有用:

  1. 确保tools.jar文件存在,并且运行jstatd命令的用户有权读取该文件。

  2. 确保中jstatd.all.policy指向tools.jar 的URL 正确并声明了协议(在这种情况下为文件)。例如,根据java.home变量指向的位置,您可能需要../像下面这样删除路径中的部分(我必须这样做):

    grant codebase "file:${java.home}/lib/tools.jar" {
       permission java.security.AllPermission;
    };
    
  3. 从Java 1.4开始,策略文件需要使用UTF-8进行编码,而无需BOMEOL(CRLF与LF)并不重要。有关更多信息,请参阅Oracle的“更改”部分下的“默认策略实施和策略文件语法”文档(更多信息(未提供链接,因为我没有足够的信誉点来发布两个以上的链接,但是我确定您已经就能找到该文件)。

  4. 运行jstatd命令时,请使用策略文件的绝对路径,例如

    jstatd -p 12345 -J-Djava.security.policy=/absolute-path-to/jstatd.all.policy
    

    编辑:-JJava 1.8中可能不再需要或不支持参数,因此该命令将改为:

    jstatd -p 12345 -Djava.security.policy=/absolute-path-to/jstatd.all.policy
    

    (感谢@lisak指出这一点)

  5. 最后,一旦您通过了这一点,您可能会发现其他问题(我确实做到了),这些文章为我指明了正确的方向:使用VisualVM监视远程JBoss实例,使用VisualVM监视JBoss的远程分析基本上,如果已经使用了1099,则可能需要使用-p参数来使用其他端口,并run.conf通过JAVA_OPTS(假设您正在监视JBoss实例)在JBoss中添加一些Java选项所有内容都在提供的链接中进行了详细说明。

编辑:-指向死链接,使用VisualVM监视到另一个具有相同内容的页面的远程JBoss实例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

春季启动-由于缺少EmbeddedServletContainerFactory bean而无法启动EmbeddedWebApplicationContext

方案由于错误而无法加载

Crashlytics:由于错误而无法打包源

错误1069:服务由于登录失败而无法启动?(试过一切)

由于输入/输出错误而无法重新启动Docker容器?

由于gradle错误而无法启动新项目

由于Intellisense错误而无法发布

由于“ @ angular / material”而无法编译;错误

Docker Postgres启动自动化由于错误而无法创建数据库

由于[Errno 13]权限被拒绝错误而无法安装PyMySQL

安装ttf-mscorefonts-installer时出现权限错误/由于用户'_apt'无法访问文件而无法删除特权

失忆由于音频问题而无法启动

由于具有私有访问权限而无法编译,并且仅在基于IntelliJ Idea的IDE中会发生错误

由于git错误而无法启动ember-cli项目

由于无法检测图形设置而无法启动Pycharm

我的pygame游戏由于出现错误而无法启动,我该如何解决?

服务由于登录失败而无法启动

由于错误而无法启动opscenter:权限被拒绝:“ ./ conf / definitions / opscenter_defs.tar.gz”

由于出现“达到最大客户端数”错误而无法启动应用程序

Windows和ubuntu由于内核错误而无法启动

由于错误,Apache无法启动

由于权限原因,logstash服务无法启动

Firefox Nightly由于我的错误而无法启动

由于错误,MySQL无法启动

Wix安装程序错误:文件名:redirection.config错误:由于权限不足而无法读取配置文件

可能由于权限不足而无法写入NTFS数据分区?

由于mongo退出而无法启动流星应用

由于selinux权限被拒绝而无法启动服务

由于“权限被拒绝”而无法执行 gcc