一个jar中的多个java进程

时间:2011-07-20 17:00:36

标签: java performance jar jvm

想象一个5 MB的jar文件,其中包含许多“主”类,每个类都以java -cp my_fat_deployment.jar net.example.MyMain15之类的方式作为自己的进程启动。有些进程持续运行数天,其他进程运行数分钟或数秒。一次可以启动和运行5到20个。

我正在尝试比较两种执行方式:

  1. 从完全相同的文件中启动每个进程:

    java -cp my_fat_deployment.jar net.example.MyMain15

  2. 从副本发布:

    cp my_fat_deployment.jar my_copy_15.jar

    java -cp my_copy_15.jar net.example.MyMain15

  3. 我正在Linux上讨论Sun的Java,以防万一。

    每种方法有哪些优点和缺点?第一个是否有任何稳定性或安全性问题?哪个更快,为什么?

4 个答案:

答案 0 :(得分:4)

第一个更快,因为您避免复制文件。除此之外,它们完全相同。

答案 1 :(得分:2)

两种方式都相同。除了制作副本占用更多磁盘空间之外,它们之间没有区别。

当然,如果您以后想要独立升级每个进程,则需要使用单独的JAR。

答案 2 :(得分:2)

除非您在java异常后每次删除并生成具有不同内容的.jar file,否则您应该先使用

第二步是多余的,因为jar名称并不重要。

答案 3 :(得分:0)

在大型jar中拥有多个启动点的最简单方法是为每个启动点添加一个额外的jar,其中包含一个带有

的清单
  1. 指向大jar的Class-Path
  2. 指向启动类的Main-Class。
  3. (加上记录保存所需的一切)。

    然后你可以做

    java -jar launchX.jar ...
    java -jar launchY.jar ...
    

    可以为您节省-cp个内容。