执行内存jar

时间:2012-09-04 08:58:48

标签: java process jar inter-process-communicat

假设我有一个java进程以byte []的形式从可信进程接收可运行的jar文件,有没有办法调用它而不必将jar文件写入磁盘然后调用它(启动一个运行jar的新进程?

2 个答案:

答案 0 :(得分:8)

以下是实现目标的一种方法:

  1. 从收到的ByteArrayInputStream创建byte []
  2. 现在使用JarInputStream创建jar文件的内存中表示。

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

  3. 这样你就可以在内存中加载jar了。

  4. 现在,您可以使用自定义类加载器进一步处理它。您可以参考one example

答案 1 :(得分:2)

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