附加到 运行 Java 进程?

Attach to a running Java process?

我正在尝试附加和调用来自 java 进程的方法和编辑变量,该 运行 来自单独的 java 进程。

示例: 进程 1 有一个循环,它打印一个在 class 中定义的私有字符串变量。 进程 2(启动时)更改 String 消息,然后进程 1 将继续打印出已更改的变量。

这更像是我正在尝试的一个简单版本,但如果我能解决这个问题,我自己就可以轻松找到其余部分。

谢谢! 埃鲁阿克斯

添加这个是因为当我找到答案时完全忘记了我的问题。

使用 Java 代理和使用 Hotspot Attach API 等工具进行注入是可能的(而且非常容易)。这是一个非常 'detectable' 的方法,但仍然有效。如果您出于任何原因希望保持低调的注入,我建议使用 DLL 注入来插入您的 类 并使用 JNI 从 DLL 调用您的入口方法。这些 DLL 和注入器很容易获得,如果您有足够的本机知识,甚至可以很容易地制作。