• jps命令


    概述

    jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。

    如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。
    如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。

    jps 用法

     
     

    参数说明

    -q:只输出进程 ID
    -m:输出传入 main 方法的参数
    -l:输出完全的包名,应用主类名,jar的完全路径名
    -v:输出jvm参数
    -V:输出通过flag文件传递到JVM中的参数

    [hostid]:远程服务器地址,jps 支持远程调用
    [protocol:][[//]hostname][:port][/servername]
    

    示例一:jps

    无参数:显示进程的ID 和 类的名称
    
     
     

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

    示例二:jps -q

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


     
     

    示例三:jps -m

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


     
     

    示例四:jps -l

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


     
     

    示例五:jps -v

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


     
     

    获取远程服务器 jps 信息

    jps 支持查看远程服务上的 jvm 进程信息。如果需要查看其他机器上的 jvm 进程,需要在待查看机器上启动 jstatd 服务。

    开启 jstatd 服务

    启动 jstatd 服务,需要有足够的权限。 需要使用 Java 的安全策略分配相应的权限。

    创建 jstatd.all.policy 策略文件。

    grant codebase "file:${java.home}/../lib/tools.jar" {
        permission java.security.AllPermission;
    };
    

    启动 jstatd 服务器

    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地址(可忽略)

    默认情况下, jstatd 开启在 1099 端口上开启 RMI 服务器。

     
     

    jps 原理

    java程序在启动以后,会在java.io.tmpdir指定的目录下,就是临时文件夹里,生成一个类似于hsperfdata_User的文件夹,这个文件夹里(在Linux中为/tmp/hsperfdata_{userName}/),有几个文件,名字就是java进程的pid,因此列出当前运行的java进程,只是把这个目录里的文件名列一下而已。 至于系统的参数什么,就可以解析这几个文件获得。

    window系统显示如下:


     
     

    从文件中可以看出 1864、4296、12600 跟上面的 jps 命令输出的进程 ID 一致。



    作者:jijs
    链接:https://www.jianshu.com/p/d39b2e208e72
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    2021,6,10 xjzx 模拟考试
    平衡树(二)——Treap
    AtCoder Beginner Contest 204 A-E简要题解
    POJ 2311 Cutting Game 题解
    Codeforces 990G GCD Counting 题解
    NOI2021 SDPTT D2T1 我已经完全理解了 DFS 序线段树 题解
    第三届山东省青少年创意编程与智能设计大赛总结
    Luogu P6042 「ACOI2020」学园祭 题解
    联合省选2021 游记
    Codeforces 1498E Two Houses 题解 —— 如何用结论吊打标算
  • 原文地址:https://www.cnblogs.com/wangziyi0513/p/10216507.html
Copyright © 2020-2023  润新知