从一个jar执行多个java进程
想象一下,一个5 MB的jar文件包含许多“主”类,每个类都是作为自己的进程启动的,比如java -cp my_fat_deployment.jar net.example.MyMain15
。一些进程持续运行数天,其他进程持续运行数分钟或数秒。一次可以有5到20个这样的系统启动并运行
我试图比较两种执行方法:
从完全相同的文件启动每个进程:
java -cp my_fat_deployment.jar net.example.MyMain15
从副本启动:
cp my_fat_deployment.jar my_copy_15.jar
java -cp my_copy_15.jar net.example.MyMain15
我说的是Sun在Linux机器上的Java,以防万一
每种方法都有哪些优点和缺点?第一个是否有任何稳定或安全问题?哪个更快?为什么
# 1 楼答案
在一个大jar中拥有多个启动点的最简单方法是为每个启动点提供一个额外的jar,该jar只包含一个带有
(加上任何你需要的记录)
然后你就可以这么做了
这样就省去了
-cp
的麻烦# 2 楼答案
除非在java Exception之后每次删除并生成具有不同内容的
.jar file
,否则应该使用第一个第二步是多余的,因为jar名称并不重要
# 3 楼答案
第一个更快,因为可以避免复制文件。除此之外,它们完全一样
# 4 楼答案
两种方法都是相同的。它们之间没有区别,只是复制会占用更多磁盘空间
当然,如果以后想独立升级每个进程,需要使用单独的JAR