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

set 发布于 2018-11-12 java 最后更新 2018-11-12 19:58 84 浏览

我正在Windows XP专业机器上运行大量的java进程。当我尝试通过本地JConsole连接到这些进程时,进程变灰。 不过,我可以在另一台机器上运行相同的进程,并通过该机器上的本地JConsole进行连接。 两台机器都为进程和jconsole运行java 1.6版本。 任何想法为什么这些过程变灰了?

已邀请:

xsed

赞同来自:

我现在正在与这个问题作斗争,我发现了一个解决方法: 您可以将本地用户的临时目录更改为他们可以访问的内容(例如D:\ temp)。确保对您尝试监视的进程和jconsole进程执行此操作。 显然会导致问题的另一件事是用户名,其中包含大写字母。该目录将始终使用全部小写字母创建,但只需将其重命名为完全如何在任务管理器中显示,所有问题都会消失:http://planeofthought.com/wp/?p=75

lquia

赞同来自:

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

Applications that are not attachable, with the management agent disabled. These include applications started on a J2SE 1.4.2 platform or started on a J2SE 5.0 platform without the -Dcom.sun.management.jmxremote or com.sun.management.jmxremote.port options. These applications appear grayed-out in the table and JConsole cannot connect to them. In the example connection dialog shown in Figure 3-1, the Anagrams application was started with a J2SE 5.0 platform VM without any of the management properties to enable the JMX agent, and consequently shows up in gray and cannot be selected.
Figure 3-1 Creating a Connection to a Local Process http://download.oracle.com/javase/6/docs/technotes/guides/management/figures/connect.gif 尽管文档中写了什么,但很可能您的进程是在不同的用户下运行的。您可以以管理员身份运行jconsole,然后尝试。

et_id

赞同来自:

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

et_et

赞同来自:

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

uharum

赞同来自:

如果进程作为不同的用户运行(例如,如果您将它们作为服务启动),那么您将无法连接到它们。另外,如果他们在较旧的jvm下运行,你很可能也无法与他们交谈。 在某些情况下,本地jmx通信机制使用本地文件系统,如果未正确定义权限,则可能会出现问题。你是否可以在网络文件系统(nfs,samba)上运行任何这些进程?

icum

赞同来自:

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