想象一个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
我正在Linux上讨论Sun的Java,以防万一。
每种方法有哪些优点和缺点?第一个是否有任何稳定性或安全性问题?哪个更快,为什么?
答案 0 :(得分:4)
第一个更快,因为您避免复制文件。除此之外,它们完全相同。
答案 1 :(得分:2)
两种方式都相同。除了制作副本占用更多磁盘空间之外,它们之间没有区别。
当然,如果您以后想要独立升级每个进程,则需要使用单独的JAR。
答案 2 :(得分:2)
除非您在java异常后每次删除并生成具有不同内容的.jar file
,否则您应该先使用
第二步是多余的,因为jar名称并不重要。
答案 3 :(得分:0)
在大型jar中拥有多个启动点的最简单方法是为每个启动点添加一个额外的jar,其中包含一个带有
的清单(加上记录保存所需的一切)。
然后你可以做
java -jar launchX.jar ...
java -jar launchY.jar ...
可以为您节省-cp
个内容。