在内存罐子的执行(Executing an in memory jar)

2019-09-22 02:46发布

假设我具有从受信任的进程在一个字节[]的形式接收一个可运行的jar文件中的Java过程中,有一个方法来调用它,而无需编写的jar文件保存到磁盘,然后调用它(开始一个新的流程运行的jar)?

Answer 1:

这里是你可以完成它的一种方式:

  1. 创建一个ByteArrayInputStreambyte []接收。
  2. 现在使用JarInputStream创建内存的jar文件的表示。

    ByteArrayInputStream bis = new ByteArrayInputStream(byteArray); JarInputStream jis = new JarInputStream(bis);

  3. 这样,你必须在内存中加载的罐子。

  4. 现在,您可以使用自定义类加载器来进一步处理它。 下面是一个例子 ,你可以参考一下。


Answer 2:

最简单的方法是将其写入到一个ramdisk,并避免在内存中的想法完全。



文章来源: Executing an in memory jar