相关疑难解决方法(0)

如何通过电线发送课程

我有以下问题:我想通过线路发送一个类型(java.lang.Class)并在另一侧'定义'类.

我试过这样的:

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(MyClass.class);
Run Code Online (Sandbox Code Playgroud)

在接收端:

ByteArrayInputStream bis = new ByteArrayInputStream(request.getBytes());
ObjectInputStream ois = new ObjectInputStream(bis);
Class c = (Class) ois.readObject(); // ClassNotFoundException
Run Code Online (Sandbox Code Playgroud)

所以显然我需要发送类的原始字节码并做一个

ClassLoader.defineClass(bytes, ..
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我没有看到如何检索已加载类的bytcode.我正在寻找类似的东西:

byte[] byteCode = MyClass.class.toByteArray();
Run Code Online (Sandbox Code Playgroud)

这甚至可以使用标准JDK,还是有任何小型lib可以做到这一点?

java serialization classloader

2
推荐指数
1
解决办法
4405
查看次数

标签 统计

classloader ×1

java ×1

serialization ×1