繁体   English   中英

如何在Linux服务器上运行jar的多个实例?

[英]how to run a multiple instance of a jar on a linux server?

我想知道当我们运行java程序(jar)的多个实例的内存分配,堆空间等时事情如何工作。这就像创建一个类的多个对象一样吗? 如果我们希望在它们的操作过程中拥有公用的可访问内存(可以访问同一jar的实例),那么最好的方法是什么? (类似于静态变量-所有实例的公共内存)

对于Linux服务器, java -cp libname.jar <class>java -jar libname.jar多个实例只是另一个不共享(隐式)任何东西的进程,彼此之间受到很好的保护。 因此,通常运行相同类型的多个应用程序(每个应用程序都在自己的JVM中)就像运行文本编辑器的多个实例一样。 如果您的应用打开端口,写入文件并执行其他可能无法共享的事情,则可能需要采取一些特殊步骤(例如,为每个实例分配不同的端口以侦听或实现文件锁)。

如果您的问题是关于将两个jar文件加载到单个JVM实例中,那么答案就在多个(可能与层次相关) classloaders的范围内,并且结果在很大程度上取决于所使用的类加载器的拓扑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM