可以使用从远程主机连接的 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 进程转移到另一个进程而不序列化它们。例如,您需要打开一个套接字以将字节从一个进程传输到另一个进程,您当然可以在其中发送序列化对象。
我见过这样的示例,其中可以使用 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 进程转移到另一个进程而不序列化它们。例如,您需要打开一个套接字以将字节从一个进程传输到另一个进程,您当然可以在其中发送序列化对象。