網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

jps|java

欄目: IT科技 / 發佈於: / 人氣:1.75W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

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* ] ]

java jps

那麼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;                // 處理其他參數            }

Tags:java jps