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());
}
}
}
上記のコードを実行すると、1 つの ID だけが返されますが、同じマシンで jps を実行すると、他のプロセスがいくつか表示されます。