`
hzl7652
  • 浏览: 118686 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

jstatd命令

 
阅读更多

jstatd [options]


此命令是一个RMI Server应用程序,提供了对JVM的创建和结束监视,也为远程监视工具提供了一个可以attach的接口

options
-nr 当一个存在的RMI Registry没有找到时,不尝试创建一个内部的RMI Registry
-p port 端口号,默认为1099
-n rminame 默认为JStatRemoteHost;如果多个jstatd服务开始在同一台主机上,rminame唯一确定一个jstatd服务
-J jvm选项

jstatd
会报如下错误:

  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:727) at sun.tools.jstatd.Jstatd.main(Jstatd.java:122)

 
这是因为没有给jstatd指定安全策略

创建安全策略文件,并命名为jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

再次启动
C:\Program Files\Java\jdk1.6.0_16\bin>jstatd -J-Djava.security.policy=jstatd.all.policy


 利用jps查看正在运行的java命令
 jps

C:\Documents and Settings\lulu>jps
4892 Bootstrap
1296 Jstatd
4484 Jps
3332 org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar

 

此时就可以使用jvisualvm.exe以远程的方式监控JVM相关信息了。

更多例子

(1)使用内部RMI Registry
jstatd -J-Djava.security.policy=all.policy (默认端口为1099)
(2)使用外部RMI Registry
a)使用默认值
rmiregistry&
jstatd -J-Djava.security.policy=all.policy
b)使用2020端口
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020
c)使用2020端口,使用rminame
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020 -n AlternateJstatdServerName
(3)RMI Registry已经启动,不创建内部RMI Registry
jstatd -J-Djava.security.policy=all.policy -nr
(4)RMI日志能力
jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.logCalls=true

 

 

分享到:
评论
8 楼 56553655 2013-12-10  
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个地方的java.home是什么? 比如我java装在F:/Java1.7/ 然后配置了 JAVA_HOME 环境变量。

java.home这个地方是不是要改下。我照你这样做,还是报一样的错。

配置JAVA_HOME就好了,其他也不用改什么


java_home配置了。一样报错。


报什么错误信息?把信息贴出来



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:727) at sun.tjstatd.all.policools.jstatd.Jstatd.main(Jstatd.java:122)


增加在bin目录,jstatd.all.policy文件
jstatd -J-Djava.security.policy=jstatd.all.policy

是放在bin目录下啊,策略文件也在同一目录。同样报上面的错。

这个"java.home"不是JAVA_HOME之类的,它是指的jre的目录,你可以随便打一个java pid,通过如果下命令就可以看到你的java.home是什么了:
jinfo ${yourpid}|grep java.home
7 楼 youjianbo_han_87 2013-01-10  
hzl7652 写道
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个地方的java.home是什么? 比如我java装在F:/Java1.7/ 然后配置了 JAVA_HOME 环境变量。

java.home这个地方是不是要改下。我照你这样做,还是报一样的错。

配置JAVA_HOME就好了,其他也不用改什么


java_home配置了。一样报错。


报什么错误信息?把信息贴出来



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:727) at sun.tjstatd.all.policools.jstatd.Jstatd.main(Jstatd.java:122)


增加在bin目录,jstatd.all.policy文件
jstatd -J-Djava.security.policy=jstatd.all.policy

是放在bin目录下啊,策略文件也在同一目录。同样报上面的错。
6 楼 hzl7652 2013-01-09  
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个地方的java.home是什么? 比如我java装在F:/Java1.7/ 然后配置了 JAVA_HOME 环境变量。

java.home这个地方是不是要改下。我照你这样做,还是报一样的错。

配置JAVA_HOME就好了,其他也不用改什么


java_home配置了。一样报错。


报什么错误信息?把信息贴出来



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:727) at sun.tjstatd.all.policools.jstatd.Jstatd.main(Jstatd.java:122)


增加在bin目录,jstatd.all.policy文件
jstatd -J-Djava.security.policy=jstatd.all.policy
5 楼 youjianbo_han_87 2013-01-09  
hzl7652 写道
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个地方的java.home是什么? 比如我java装在F:/Java1.7/ 然后配置了 JAVA_HOME 环境变量。

java.home这个地方是不是要改下。我照你这样做,还是报一样的错。

配置JAVA_HOME就好了,其他也不用改什么


java_home配置了。一样报错。


报什么错误信息?把信息贴出来



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:727) at sun.tools.jstatd.Jstatd.main(Jstatd.java:122)
4 楼 hzl7652 2013-01-09  
youjianbo_han_87 写道
hzl7652 写道
youjianbo_han_87 写道
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个地方的java.home是什么? 比如我java装在F:/Java1.7/ 然后配置了 JAVA_HOME 环境变量。

java.home这个地方是不是要改下。我照你这样做,还是报一样的错。

配置JAVA_HOME就好了,其他也不用改什么


java_home配置了。一样报错。


报什么错误信息?把信息贴出来
3 楼 youjianbo_han_87 2013-01-09  
hzl7652 写道
youjianbo_han_87 写道
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个地方的java.home是什么? 比如我java装在F:/Java1.7/ 然后配置了 JAVA_HOME 环境变量。

java.home这个地方是不是要改下。我照你这样做,还是报一样的错。

配置JAVA_HOME就好了,其他也不用改什么


java_home配置了。一样报错。
2 楼 hzl7652 2013-01-08  
youjianbo_han_87 写道
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个地方的java.home是什么? 比如我java装在F:/Java1.7/ 然后配置了 JAVA_HOME 环境变量。

java.home这个地方是不是要改下。我照你这样做,还是报一样的错。

配置JAVA_HOME就好了,其他也不用改什么
1 楼 youjianbo_han_87 2013-01-08  
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个地方的java.home是什么? 比如我java装在F:/Java1.7/ 然后配置了 JAVA_HOME 环境变量。

java.home这个地方是不是要改下。我照你这样做,还是报一样的错。

相关推荐

    JVM监控管理及故障诊断工具(常用命令)

    JVM 监控管理及故障诊断工具 ...jps、jstat 和 jstatd 三种命令都是 JVM 监控管理及故障诊断的重要工具,它们可以帮助开发者快速地了解 JVM 的性能和资源消耗情况,从而进行合理的资源分配和性能优化。

    Java内存泄露_JVM监控工具介绍

    jstatd命令可以帮助开发者快速地监控远程机器的Java应用程序的信息,从而快速定位问题所在。 Java提供了多种工具和命令来帮助开发者快速地检测和解决Java内存泄露问题。本文介绍的工具和命令可以帮助开发者快速地...

    jstatd-client:jstatdJStatRemoteHost的RMI客户端

    1. **配置**:在远程主机上启动jstatd服务,通常在命令行中使用`jstatd`命令。如果需要密码保护,可以使用`-J-Djava.security.policy`指定安全策略文件。 2. **连接**:jstatd-client作为RMI客户端,通过网络连接到...

    JAVA命令大全.pdf

    11. jstatd.exe:JVM统计监控守护进程,可以远程监控JVM的性能。 12. kinit.exe、klist.exe、ktab.exe:这些是与Kerberos身份验证相关的工具,Java可以通过这些工具与Kerberos系统交互,进行身份验证和授权。 以上...

    jvisualvm远程访问Linux环境中tomcat

    jmx 方法直接远程连接 Tomcat,而 jstatd 方法需添加创建 `jstatd.all.policy` 文件,并执行命令 `jstatd -J-Djava.security.policy=jstatd.all.policy`,然后远程连接。jstatd 服务一直运行,通过 `jps` 命令可查询...

    idea使用jvm2222222222222222222

    例如,`jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.8.16`这行命令会启动jstatd服务,并设置允许远程连接的主机为192.168.8.16。 在实际开发中,了解这些JVM相关的...

    linux切换JDK脚本

    --slave /usr/bin/jstatd jstatd /opt/jdk1.6.0_11/bin/jstatd --slave /usr/bin/jvisualvm jvisualvm /opt/jdk1.6.0_11/bin/jvisualvm --slave /usr/bin/native2ascii native2ascii /opt/jdk1.6.0_11/bin/native...

    JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat

    jdb工具包含了丰富的命令,帮助您进行调试。jdb工具的功能与Sun Studio中的dbx非常相似,但jdb专门用于Java应用程序的调试。 jstat jstat是一个命令行工具,利用了JVM内建的指令对Java应用程序的资源和性能进行...

    深入浅析jcmd:JDK14中的调试神器

    - `GC.*`:与垃圾收集相关的命令,如`GC.class_histogram`用于打印类直方图,`GC.heap_dump`生成堆转储文件。 - `JFR.*`:与Java飞行记录器(JFR)相关,用于配置、检查和生成事件记录。 - `JVMTI.*`:与Java虚拟机...

    JVM性能监控方法之visualVM1

    在`JAVA_HOME/bin`目录下执行以下命令来启动jstatd服务: ```sh nohup ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.1.10 > /dev/null 2>&1 & ``` #### 五、...

    大数据分析架构师顶级培训课程 storm课件 如何通过JMX监控Storm 共6页.pdf

    - 在`bin`目录下执行`jstatd -J-Djava.security.policy=jstatd.all.policy &`命令来启用jstat服务,其中`jstatd.all.policy`为上述创建的policy文件路径。 - 检查1099端口是否已被启用,可以通过`netstat -tlnup`...

    jvm监控工具介绍

    jdb提供了丰富的命令集,类似于Sun Studio中的dbx,专为Java应用程序设计。它允许设置断点、查看变量、单步执行代码等,是Java开发和调试的重要工具。 6. **jstat**: jstat是用于命令行监控Java应用程序资源和...

    x86_64汇编调试程序初步

    此外,还提到一个特定的问题场景:如果需要修改无源代码程序的行为,比如让jstatd在指定的端口上监听,而不是随机端口。这通常需要对该程序进行逆向工程,然后用汇编或C/C++等语言进行相应的修改和重新编译。由于这...

    JVM监控工具介绍.docx

    `jps` 命令用于列出运行在本地或远程机器上的所有JVM实例,显示它们的进程ID。这对于找到要监控的特定Java进程非常有用。 7. **jstat**: `jstat` 是最强大的工具之一,它提供了丰富的统计选项,可以监视类加载、...

    JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat.doc

    它包含了一系列调试命令,类似于Sun Studio中的dbx工具,但专为Java应用程序设计。`jdb` 支持断点设置、变量检查等功能,是解决复杂运行时错误的强大工具。 #### 6. jstat —— Java Statistics Monitoring Tool `...

    jdk-6u45-windows-x64.rar

    7. **其他工具**:如appletviewer、apt、extcheck、idlj、jarsigner、jconsole、jdb、jdwp、jhat、jinfo、jmap、jmc、jps、jrunscript、jstack、jstat、jstatd等,它们提供了各种附加功能,如性能监控、内存分析等。...

    JVM-Tunning-Tools-Introduction

    1. jstatd:是一个监控服务,它在目标机器上创建一个RMI(远程方法调用)注册表,并使用这个注册表来监听JVM进程的创建和终止。其他工具如jvisualvm可通过它来远程连接并监控JVM进程。 2. jps:用于显示在本地或...

    java troubleshooting hp

    - **1.4.2 gdb子命令用于Java虚拟机调试**:列举了一些gdb特有的子命令,专门用于调试Java虚拟机,如查看类加载器状态等。 ##### 1.5 HPjconfig HPjconfig 是一个配置工具,主要用于设置Java虚拟机的启动参数和其他...

    BTrace监控远程服务器使用实例

    然后,在Tomcat启动命令中添加 `-javaagent` 参数,指定BTrace的jar文件路径。 为了实现远程监控,你需要开启JVM的远程调试端口。这可以通过设置JVM参数 `-Dcom.sun.management.jmxremote`、`-Dcom.sun.management....

Global site tag (gtag.js) - Google Analytics