JVM

JVM-15丨JVM工具-jps

Posted by jiefang on June 16, 2020

JVM工具-JPS(JVM Process Status Tool)虚拟机进程状况工具

是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。

命令

命令格式:

jps [options ] [ hostid ]

hostid:

[protocol:][[//]hostname][:port][/servername]

输出格式:

lvmid [ [ classname JARfilename “Unknown”] [ arg* ] [ jvmarg* ] ]

[options]选项:

-q:仅输出LVMID(Local Virtual Machine Identifier),省略主类名称; -m:输出虚拟机进程启动时传递给主类的main()的参数; -l:输出完全的包名,应用主类名,jar的完全路径名; -v:输出虚拟机进程启动时的JVM参数; -V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件); -Joption:传递参数到vm,例如:-J-Xms512m;

远程服务器JPS信息

开启 jstatd 服务

启动 jstatd 服务,需要有足够的权限,需要使用Java的安全策略分配相应的权限,默认情况下,jstatd 开启在 1099 端口上开启 RMI 服务器。

  1. 创建 jstatd.all.policy 策略文件。
    1
    2
    3
    
     grant codebase "file:${java.home}/../lib/tools.jar" {
         permission java.security.AllPermission;
     };
    
  2. 启动 jstatd 服务器
    1
    
     jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.31.241
    

    -J 参数是一个公共的参数,如 jps、 jstat 等命令都可以接收这个参数。 由于 jps、 jstat 命令本身也是 Java 应用程序, -J 参数可以为 jps 等命令本身设置 Java 虚拟机参数。

  • -Djava.security.policy:指定策略文件
  • -Djava.rmi.server.hostname:指定服务器的ip地址(可忽略)

示例

示例1:jps

1
	jps 不带参数,默认显示进程ID和启动类的名称。

jps

示例2:jps -q

1
	jps -q 只输出进程ID,而不显示出类的名称

jps -q

示例3:jps -m

1
	jps -m 可以输出传递给 Java 进程(main 方法)的参数。

jps -m

示例4:jps -l

1
	jps -l 可以输出主函数的完整路径(类的全路径)。

jps -l

示例5:jps -v

1
	jps -v 可以显示传递给 Java 虚拟机的参数。