Вы можете использовать Attach API для подключения к виртуальной машине. Вот статья, которая объясняет, как ее использовать
Вот пример кода:
String agentJAR = "myAgent.jar";
VirtualMachine vm = VirtualMachine.attach (processid);
vm.loadAgent(agentJAR);
Где агент - это имя вашей банки.
Jar агента содержит Agent , который может взаимодействовать с JVM с помощью Instrumentation API.
Чтобы создать агент, который загружается во время выполнения, вы реализуете agentmain
функцию, подобную этой:
public static void agentmain(String agentArgs, Instrumentation inst);
или
public static void agentmain(String agentArgs);
Объект Instrumentation используется для изменения классов во время выполнения, которые вам, вероятно, не нужны. Но, надеюсь, вы можете просто поместить любой код, который вам нужно запустить, в agentmain, а затем использовать API присоединения для запуска его в целевой JVM.
Удачи !!