Мне нужно программно восстановить функциональные возможности инструмента jps. Мне нужно выяснить все запущенные процессы Java вместе с их идентификатором, чтобы я мог подключиться к этому процессу (подобно тому, что делает 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());
}
}
}
Когда я запускаю приведенный выше код, он возвращает только один идентификатор, но когда я запускаю jps на той же машине, я вижу несколько других процессов.