背景
现在很多软件都支持集群部署,但是测试环境通常资源有限,所以一般通过单台机器模拟集群部署(使用不同端口,运行相同jar包),本文的目的就是通过多种方式实现此需求。
两个程序
1、jar程序
① springboot程序
② 只包含一个main方法,用于启动程序,输出进程ID
③ 路径:C:/demo.jar(windows)/demo.jar(Linux)
2、启动程序
① 包含main方法的程序
多种方式
1、通过URLClassLoader加载jar程序(windows平台)
2、通过java -jar命令启动jar程序(windows平台)
3、通过复制原始jar文件,启动不同的jar程序(windows平台)
4、通过Linux Shell脚本启动(Linux平台)
方式一
1、通过URLClassLoader加载jar程序(windows平台)
① 说明
1) 启动程序多次加载jar程序
2) jar程序和启动程序使用相同进程,非独立进程,无实际意义,仅介绍
② 启动jar程序:运行启动程序main方法
③ 终止jar程序:停止启动程序(因为共用同一个进程,终止主程序,jar程序会同时终止)
2、代码
① jar程序
@SpringBootApplicationpublic classDemoStarter {public static voidmain(String[] args) {//获取进程Id
String name=ManagementFactory.getRuntimeMXBean().getName();
String processId= name.split("@")[0];
System.out.println(processId);
SpringApplication.run(DemoStarter.class, args);
}
}
② 启动程序
importjava.lang.reflect.Method;importjava.net.URL;importjava.net.URLClassLoader;public classStarter1 {public static void main(String[] args) throwsException {
star