java jps

作者:原创时间:2022-04-02
文档

java jps是什么,让我们一起了解一下?

jps是用于查看有权访问的hotspot虚拟机的进程,当未指定hostid时,默认查看本机jvm进程,否者查看指定的hostid机器上的jvm进程,此时hostid所指机器必须开启jstatd服务。jps可以列出jvm进程lvmid,主类类名,main函数参数, jvm参数,jar名称等信息。

命令格式:jps [options ] [ hostid ] 
[options]选项 :
-q:仅输出VM标识符,不包括classname,jar name,arguments in main method 
-m:输出main method的参数 
-l:输出完全的包名,应用主类名,jar的完全路径名 
-v:输出jvm参数 
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 
-Joption:传递参数到vm,例如:-J-Xms512m
 [hostid]:
[protocol:][[//]hostname][:port][/servername]

命令的输出格式 :

lvmid [ [ classname| JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

那么jps是如何实现的?

我们从入口类Jps.java看起,这个类中就一个Main方法,核心的代码如下图所示,首先从特定的主机上获取正在运行的Java进程,然后对这些进程进行输出,如果有参数的话还要额外输出参数需要输出的信息。从主机获取Java进程主要有分为两种,一种是本地的,另一种通过RMI远程调用的。

HostIdentifier hostId = arguments.hostId();
            MonitoredHost monitoredHost =
                    MonitoredHost.getMonitoredHost(hostId);
            // 从特定主机上获取Java进程
            Set jvms = monitoredHost.activeVms();
            for (Iterator j = jvms.iterator(); j.hasNext(); /* empty */ ) {
                StringBuilder output = new StringBuilder();
                Throwable lastError = null;
                int lvmid = ((Integer)j.next()).intValue();
                output.append(String.valueOf(lvmid));
                if (arguments.isQuiet()) {
                    System.out.println(output);
                    continue;
                }
                MonitoredVm vm = null;
                String vmidString = "//" + lvmid + "?mode=r";
                String errorString = null;
                // 处理其他参数
            }

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java jquery java jsonfield java jsonp java jstack java jstat java jta java jtable java jtextfield java jvm java jxl java kafka java keystore java kmeans java kudu java lamada java leveldb java linklist java linq java list.add java list.contains java joptionpane java jndi java jmh java jmeter java jit java jetty java jep 计算机管理怎么打开 excel怎么排序 两个excel如何独立显示 微信分组怎么删除 朋友圈怎么转发 qq怎么清理缓存和垃圾清理 苹果手机怎么恢复出厂设置 怎么导出微信聊天记录 微信群怎么找 java execute java exchange java event java escape