假设我具有从受信任的进程在一个字节[]的形式接收一个可运行的jar文件中的Java过程中,有一个方法来调用它,而无需编写的jar文件保存到磁盘,然后调用它(开始一个新的流程运行的jar)?
Answer 1:
这里是你可以完成它的一种方式:
- 创建一个
ByteArrayInputStream
从byte []
接收。 现在使用
JarInputStream
创建内存的jar文件的表示。ByteArrayInputStream bis = new ByteArrayInputStream(byteArray); JarInputStream jis = new JarInputStream(bis);
这样,你必须在内存中加载的罐子。
- 现在,您可以使用自定义类加载器来进一步处理它。 下面是一个例子 ,你可以参考一下。
Answer 2:
最简单的方法是将其写入到一个ramdisk,并避免在内存中的想法完全。
文章来源: Executing an in memory jar