我在Windows XP專業機器上運行多個java進程。當我嘗試通過本地JConsole連接到這些進程時,進程變灰。當嘗試通過JMX進行連接時,本地java進程變灰
但是我可以在另一臺機器上運行相同的進程,並通過該機器上的本地JConsole進行連接。
兩臺機器都爲進程和jconsole運行java 1.6版本。
任何想法爲什麼這些過程變灰?
我在Windows XP專業機器上運行多個java進程。當我嘗試通過本地JConsole連接到這些進程時,進程變灰。當嘗試通過JMX進行連接時,本地java進程變灰
但是我可以在另一臺機器上運行相同的進程,並通過該機器上的本地JConsole進行連接。
兩臺機器都爲進程和jconsole運行java 1.6版本。
任何想法爲什麼這些過程變灰?
如果進程以不同的用戶身份運行(例如,如果將他們作爲服務啓動),那麼您將無法連接到它們。另外,如果他們是在一個較老的jvm下運行的,你很可能也無法與他們交談。
在某些情況下,本地jmx通信機制使用本地文件系統,並且如果權限未正確定義可能會出現問題。你可能在聯網的文件系統(nfs,samba)上運行這些進程嗎?
從http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html:
應用不屬於可連接,禁用管理代理。其中包括在J2SE 1.4.2平臺上啓動的應用程序,或者在沒有
-Dcom.sun.management.jmxremote
或com.sun.management.jmxremote.port
選項的J2SE 5.0平臺上啓動的應用程序。 這些應用程序在表格中灰顯了,JConsole無法連接到它們。在圖3-1所示的示例連接對話框中,Anagrams應用程序以J2SE 5.0平臺VM啓動,沒有任何管理屬性來啓用JMX代理,因此顯示爲灰色且無法選擇。
儘管什麼東西被寫在文件中,最有可能你的過程,是一個不同的用戶下運行。您可以以管理員身份運行jconsole
,然後嘗試。
我打開了Windows任務管理器和jconsole,我的java進程都是針對同一個用戶的。 – richs 2011-05-11 16:57:32
嗨托馬斯 - 以管理員身份運行jconsole不能解決問題(儘管我會認爲它會)。你碰到過這個嗎?有趣的是,以管理員身份運行Process Explorer使其能夠查看此特定Java進程的進程信息。解決方法是使用'com.sun.management.jmxremote.port'並使用「Remote Process」進行連接,但對我來說這不是一個最佳解決方案,因爲我有很多進程正在運行併爲其分配唯一的端口是有問題的。 – sourcedelica 2014-07-05 17:51:46
我這個問題,現在的戰鬥,我發現了一個變通:
您可以將本地用戶的臨時目錄改變的東西,肯定可以訪問(如d:\ TEMP)。確保爲您要監控的進程和jconsole進程執行此操作。
另一件可能會導致問題的東西是大寫字母的用戶名。該目錄將始終使用全部小寫字母創建,但只需將其重命名爲其在任務管理器中的顯示方式,即可消除所有問題:http://planeofthought.com/wp/?p=75
謝謝RegRog。您的編輯鏈接完成了+1的技巧。 (我仍然不喜歡告訴我的用戶重命名文件夾)。將hsperfdata_
這個爲我打了頭。我在重命名這個目錄時也遇到了一個問題,但是我能夠使用Sysinternals Process Explorer工具來確定我的SmartSVN副本的目錄已被鎖定。然後我關閉SmartSVN,重命名目錄,一切都很好。該目錄在正確的情況下重新創建。 – 2013-03-25 22:59:13
儘可能地相信,這實際上工作!即將TEMP和TMP都設置爲c:\ temp。難以置信的。謝謝! – fool4jesus 2017-06-01 12:38:05
以下是我的工作原理。我將我的%TEMP%
和%TMP%
環境變量更改爲指向我在我的%HOME%
位置創建的文件夾(如C:\Users\[YOUR_NAME]\Temp
)。一旦我做到了,所有問題都消失了。
說你用來啓動你的Java應用程序的Windows用戶名在任務管理器中看到的是YOUR_USER_NAME。 請在您的臨時文件夾中檢查名稱看起來像hsperfdata_XXXXX(XXXXX應該是您的用戶名)的文件夾,並確保YOUR_USER_NAME和XXXXX完全相同(請注意大寫和小寫)。
將環境變量中的TEMP路徑更改爲D:\ temp之類的內容,因爲它可能是許可問題。爲我解決這個問題
都運行相同版本的Java 1.6的機器?我有一個模糊的回憶,在某些jdk 1.6版本中存在一些與此相關的錯誤。 – jtahlborn 2011-05-11 17:08:01
我使用完全相同的JDK從同一個目錄運行了一個進程和jconsole。仍然那個過程顯示灰色。 – richs 2011-05-11 17:33:29
對,我問是否2個不同的盒子使用相同版本的jdk。 – jtahlborn 2011-05-11 18:44:08