有没有办法使用java获取/挂钩/附加已经运行的进程?

waf*_*waf 8 java process

我希望能够做到这样的事情:

Process p  = getRunningProcess(pid)
Run Code Online (Sandbox Code Playgroud)

如果有办法,是否创建进程(使用java,使用python,从shell等)是否重要?

now*_*waq 5

可以从Java app附加到另一个JVM进程(例​​如,能够to monitor what's going on and potentially detect problems before they happen).您可以使用Attach API执行此操作.不太了解附加到非JVM进程.

String name = ...
List vms = VirtualMachine.list();
for (VirtualMachineDescriptor vmd: vms) {
    if (vmd.displayName().equals(name)) {
        VirtualMachine vm = VirtualMachine.attach(vmd.id());
        String agent = ...
        vm.loadAgent(agent);
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)