我需要以编程方式重新创建 jps 工具的功能。我需要找出所有正在运行的 Java 进程及其 ID,以便我可以附加到该进程(类似于 JConsole 所做的)。
我认为 VirtualMachine API 会有所帮助,但是当我运行以下命令时没有得到预期的结果
public class ProcessList {
public static void main(String[] args){
List<VirtualMachineDescriptor> vms = VirtualMachine.list();
for(VirtualMachineDescriptor vm : vms){
System.out.println (vm.id());
}
}
}
当我运行上面的代码时,它只返回一个 ID,但是当我在同一台机器上运行 jps 时,我看到了其他几个进程。