可以使用从远程主机连接的 java 代理来传递数据吗?

Can a java agent attached from a remote host be used to pass data?

我见过这样的示例,其中可以使用 Byte Buddy 将代理附加到 运行 java 进程。

 public static void premain(String args, Instrumentation instrumentation) {

        File file ;
        try {
                file = (new File("BBAgent.jar"));
                ByteBuddyAgent.attach(file,"21345");
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }

// Code to access objects in the original running process here.

    }
}

我的问题是,是否可以通过在附件下方添加额外的代码来访问原始流程中的对象?还是原进程访问数据的代码必须已经打包在jar文件附件中?

不,对象不能从一个 Java 进程转移到另一个进程而不序列化它们。例如,您需要打开一个套接字以将字节从一个进程传输到另一个进程,您当然可以在其中发送序列化对象。