尝试通过JMX连接时,本地java进程显示为灰色

时间:2011-05-11 16:04:19

标签: java jconsole

我在Windows XP专业机器上运行了许多java进程。当我尝试通过本地JConsole连接到这些进程时,进程显示为灰色。

但是我可以在另一台机器上运行相同的进程,并通过该机器上的本地JConsole进行连接。

两台机器都运行java 1.6版本的进程和jconsole。

为什么这些过程会变灰?

9 个答案:

答案 0 :(得分:17)

我现在正在与这个问题作斗争,我发现了一个解决方法:

您可以将本地用户的临时目录更改为他们可以访问的内容(例如D:\ temp)。确保对您尝试监视的进程和jconsole进程执行此操作。

显然会导致问题的另一件事是用户名,其中包含大写字母。该目录将始终使用全部小写字母创建,但只需将其重命名为完全如何在任务管理器中显示,所有问题都会消失:http://planeofthought.com/wp/?p=75

答案 1 :(得分:5)

如果进程以不同的用户身份运行(例如,如果您将其作为服务启动),那么您将无法连接到它们。另外,如果他们在较旧的jvm下运行,你很可能也无法与他们交谈。

在某些情况下,本地jmx通信机制使用本地文件系统,如果未正确定义权限,则可能会出现问题。你是否可以在网络文件系统(nfs,samba)上运行任何这些进程?

答案 2 :(得分:3)

说出用于启动任务管理器中的java应用程序的Windows用户名是YOUR_USER_NAME。 请检查您的临时文件夹中名称类似于hsperfdata_XXXXX(XXXXX应该是您的用户名)的文件夹,并确保YOUR_USER_NAME和XXXXX完全相同(小心大写和小写)。

答案 3 :(得分:2)

来自http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html

  

禁用管理代理时无法连接的应用程序。这些应用程序包括在J2SE 1.4.2平台上启动的应用程序,或者在没有-Dcom.sun.management.jmxremotecom.sun.management.jmxremote.port选项的J2SE 5.0平台上启动的应用程序。 这些应用程序在表中显示为灰色,JConsole无法连接到它们。在图3-1所示的示例连接对话框中,Anagrams应用程序是使用J2SE 5.0平台VM启动的,没有任何管理属性来启用JMX代理,因此显示为灰色且无法选择。

Figure 3-1 Creating a Connection to a Local Process http://download.oracle.com/javase/6/docs/technotes/guides/management/figures/connect.gif

尽管文档中写了什么,但很可能您的进程是在不同的用户下运行的。您可以以管理员身份运行jconsole,然后尝试。

答案 4 :(得分:1)

这对我有用。我将%TEMP%%TMP%个环境变量更改为指向我在%HOME%位置创建的文件夹(如C:\Users\[YOUR_NAME]\Temp)。一旦我这样做,所有问题都消失了。

答案 5 :(得分:0)

将环境变量中的TEMP路径更改为D:\ temp,因为它可能是权限问题。为我解决了这个问题

答案 6 :(得分:0)

我遇到了前面所述的问题,但被告知一个更简单的解决方案:只需使用Java关闭所有程序(“ IntelliJ IDEA”,“ SoapUI”等-以解锁临时文件夹),然后删除{{1} }文件夹。然后,在打开任何Java程序之后,将重新创建此文件夹,但是这次使用正确的名称(最有可能是SELECT T1.ID, TT2.ID, T1.PointGeog.STDistance(TT2.PointGeog) FROM #Table1 as T1 CROSS APPLY (SELECT TOP 1 T2.ID, T2.PointGeog FROM #Table2 as T2 WHERE T1.PointGeog.STDistance(T2.PointGeog) <= 100 ORDER BY T1.PointGeog.STDistance(T2.PointGeog) ASC) as TT2 )。然后,可以再次通过“ JConsole”或“ VisualVM”监视本地Java进程(现在运行时不会出现错误,并带有指向VisualVM: Troubleshooting Guide的链接)。

答案 7 :(得分:0)

代替此步骤,您只需转到CMD,然后键入jconsole.exe(PID)

请记住转到存在jconsole的路径,然后运行可执行文件。

答案 8 :(得分:0)

更改hsperfdata文件夹的名称,该文件夹对我来说位于C:\ Users \ pmimgg0 \ AppData \ Local \ Temp \ hsperfdata_pmimgg0,以匹配在任务管理器上找到的用户名。一旦将hsperfdata_pmimgg0更改为hsperfdata_PMIMGG0,我的本地进程就不再在jconsole上变灰了。

enter image description here