有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从一个jar执行多个java进程

想象一下,一个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

我说的是Sun在Linux机器上的Java,以防万一

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


共 (4) 个答案

  1. # 1 楼答案

    在一个大jar中拥有多个启动点的最简单方法是为每个启动点提供一个额外的jar,该jar只包含一个带有

    1. 指向大罐子的类路径
    2. 指向launch类的主类

    (加上任何你需要的记录)

    然后你就可以这么做了

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

    这样就省去了-cp的麻烦

  2. # 2 楼答案

    除非在java Exception之后每次删除并生成具有不同内容的.jar file,否则应该使用第一个

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

  3. # 3 楼答案

    第一个更快,因为可以避免复制文件。除此之外,它们完全一样

  4. # 4 楼答案

    两种方法都是相同的。它们之间没有区别,只是复制会占用更多磁盘空间

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