一个java进程能否获取运行在同一主机上的其他java进程的ID?

一个java进程能否获取运行在同一主机上的其他java进程的ID?,java,profiling,instrumentation,pid,Java,Profiling,Instrumentation,Pid,有没有办法找到当前正在运行的JVM,并获取它们的PID? e、 g.启动JVisualvm时,它显示所有本地JVM。我该怎么做 背景:我正在从事一个检测项目,我想将一个代理附加到另一个(未知)java进程。其思想是显示当前运行的所有java进程,并让用户从该列表中选择一个进程。 谢谢 [edit]我指的是进程,而不是线程。您可以使用运行时来实现这一点。这应该给你一条前进的道路 Process p = Runtime.getRuntime().exec(COMMAND_TO_GET_PROCESS

有没有办法找到当前正在运行的JVM,并获取它们的PID? e、 g.启动JVisualvm时,它显示所有本地JVM。我该怎么做

背景:我正在从事一个检测项目,我想将一个代理附加到另一个(未知)java进程。其思想是显示当前运行的所有java进程,并让用户从该列表中选择一个进程。 谢谢


[edit]我指的是进程,而不是线程。

您可以使用
运行时来实现这一点。这应该给你一条前进的道路

Process p = Runtime.getRuntime().exec(COMMAND_TO_GET_PROCESS_DATA);

例如,让两者使用套接字或管道进行通信不是更好吗?您可以使用。它是JDK自带的,我想不是。因为OP希望JVM中的线程中有当前正在运行的进程列表。您可能需要使用Runtime.exec()来运行外部(OS)命令,以列出所有PID并可能对其进行过滤。这样做你可以看看。我不确定这是否有效,这将取决于您可以从PID列表中获得什么样的信息。谢谢。你知道你提到的“命令获取处理数据”吗?我想让它在windows上运行。不确定,但是
tasklist
可以做到。这解决了你的问题吗?不完全解决。我有一些未出现在任务列表中的正在运行的进程,但我承认我没有尽全力…我花了一年时间回到那个老项目,这个解决方案足够可靠。谢谢