将 JConsole 连接到另一个用户的进程
Connect JConsole to another user's process
我有一个托管 JVM 的 Win64 C++ 程序。正常执行时,我可以从 JConsole 连接到它并查看统计信息。该进程出现在本地进程列表中。
当同一程序 运行 作为另一个用户(来自已保存凭据的计划作业)时,该进程不在列表中。我在机器上有管理员权限,不确定它是否重要。
Java 在 TEMP 目录中创建一个 hsperfdata_xxx
目录。其中保存了 jvm 中进程 运行 的信息。只有当 jvm 运行 jconsole 使用与您要检查的 java 应用程序相同的目录时,它们才能 看到 彼此。
我假设其他用户有其他 TEMP 目录,这就是为什么您的 jconsole 看不到其他应用程序的原因。
我建议你为两个用户设置相同的 TEMP 目录。
我在一个用户的多个 java 安装中遇到了这个问题。
在任务管理器中找到进程的PID,然后运行
"PATH_TO_JDK_BIN\jconsole" PID
我有一个托管 JVM 的 Win64 C++ 程序。正常执行时,我可以从 JConsole 连接到它并查看统计信息。该进程出现在本地进程列表中。
当同一程序 运行 作为另一个用户(来自已保存凭据的计划作业)时,该进程不在列表中。我在机器上有管理员权限,不确定它是否重要。
Java 在 TEMP 目录中创建一个 hsperfdata_xxx
目录。其中保存了 jvm 中进程 运行 的信息。只有当 jvm 运行 jconsole 使用与您要检查的 java 应用程序相同的目录时,它们才能 看到 彼此。
我假设其他用户有其他 TEMP 目录,这就是为什么您的 jconsole 看不到其他应用程序的原因。
我建议你为两个用户设置相同的 TEMP 目录。
我在一个用户的多个 java 安装中遇到了这个问题。
在任务管理器中找到进程的PID,然后运行
"PATH_TO_JDK_BIN\jconsole" PID