我試圖運行JConsole的來分析正在運行的進程使用的內存,但JConsole中不顯示即使我絕對相信,一個正在運行(除了它應該告訴我處理JConsole也在進程列表中,但它沒有)。JConsole中找不到過程
有沒有人有一個想法,爲什麼它不顯示任何進程?
乾杯
我試圖運行JConsole的來分析正在運行的進程使用的內存,但JConsole中不顯示即使我絕對相信,一個正在運行(除了它應該告訴我處理JConsole也在進程列表中,但它沒有)。JConsole中找不到過程
有沒有人有一個想法,爲什麼它不顯示任何進程?
乾杯
我有同樣的問題。但是如果我明確指定PID,如jconsole 1234
,jconsole能夠分析過程。
在窗口提示符下運行回聲%TMP%,它會給你默認的臨時目錄。轉到該目錄並查找名爲hsperfdata_的目錄,其中是您的登錄名。這是存儲你的進程ID的目錄。您創建的任何新進程(例如Java應用程序)都將有一個由進程ID命名的新文件。 Jconsole將從這個目錄中獲取進程id。如果您無法在此目錄中創建文件,那意味着您需要更改權限才能進行寫入。完成之後,啓動一個新的Java應用程序以查看是否在目錄中有新的進程ID文件。一旦確認,啓動jconsole
當受監控的JVM和監控工具(JConsole/JMC/Java Mission Control,甚至是VisualVM)的%TMP%值不同時,會發生這種情況。 這可能是標準方案使用Cygwin(至少在我的情況:Cygwin的+ Babun) 最簡單的解決方案是設置TMP環境變量Windows使用,在殼啓動JVM的範圍至少爲默認值的值。
在我的情況下,去除hsperfdata_USERNAME
目錄(%TMP%
目錄),並關閉所有的JVM提供了幫助。
你必須開始JConsole的使用相同的用戶,你要分析是由啓動過程中。
即使我從同一用戶運行,但我仍然無法運行jconsole。 –
如果你在Windows上運行JConsole的 - 簡單地說:
你能提供你如何做到這一點的詳細信息? –