簡體   English   中英

在本地分析獨立的Java應用程序中的線程

[英]Analyze stand alone Java Application locally for threads

尊敬的專家,

我有一個獨立的Java應用程序,想監視它創建的線程。 我打算使用JConsole或JVisualVM之類的工具。 但是,我無法將這些工具本地連接到Java應用程序。

我正在使用Windows計算機。 JConsole和Java程序在本地運行。 我嘗試使用以下JMV參數運行Java應用程序,但未成功:

java -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false    -Dcom.sun.management.jmxremote.authenticate=false LinkedListTest

當我嘗試使用JConsole連接時,我的進程ID為灰色,並顯示以下消息:

  • 注意:在此過程中未啟用管理代理

我認為我應該能夠將JConsole連接到獨立的Java應用程序。 有什么想法我在這里想念的

謝謝並恭祝安康

感謝您的輸入。 我能夠解決問題,詳細信息如下:

如@Holger所述,JConsole和JVisualVM都可以連接到運行的Java應用程序,而無需任何JMX參數。 我面臨的問題是特定於機器的。 我重新啟動計算機並刪除了以下目錄:

%TMP%\\ hsperfdata_User.Name

(我無法在不重新啟動的情況下刪除此目錄)

重新啟動了JConsole / JVisualVM,並能夠使用進程ID連接到本地Java進程。 實際上,JVisualVM的使用使我朝着此修復程序邁進。 在啟動JVisualVM時,我收到一條錯誤消息,指出無法監視本地進程/應用程序。 該消息具有指向“ 故障排除指南”的鏈接。 我正在復制相關代碼段:

無法監視本地應用程序(啟動時出現錯誤對話框)

說明:在VisualVM啟動后,立即顯示錯誤對話框,提示無法監視本地應用程序。 本地運行的Java應用程序顯示為Application>(pid ###)。

解決方案:如果用戶名包含大寫字母,則在Windows系統上可能會發生這種情況。 在這種情況下,用戶名是UserName,但是JDK創建的jvmstat目錄是>%TMP%\\ hsperfdata_username。 要解決此問題,請退出所有Java應用程序,刪除>%TMP%\\ hsperfdata_username目錄,然后創建新的%TMP%\\ hsperfdata_UserName目錄。

但是,在我的計算機上,目錄具有以下格式:

%TMP%\\ hsperfdata_User.Name

因此,我的建議是:-檢查上述目錄的名稱是否存在駱駝保護套用戶名-如果不是,請按照《故障排除指南》中的步驟進行操作-如果問題仍然存在,請刪除目錄(可能需要重新啟動計算機,因為就我而言)-重新啟動JConsole / JVisualVM

希望這個問題能解決。

謝謝並恭祝安康

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM