同一台机器,不同服务,不同JDK,如何巧妙配置各自JDK启动

        我们开发和部署的时候,难免遇到资源紧张,同一台机器,部署好几个服务,而不同服务依赖的JDK也不同,而我们配置环境变量只能一份,而我们服务都要启动,这样我们就需要每个服务都配置自己的JDK。

        我们以SpringBoot项目为例。服务器是windows系统,我的配置路径是这样的。

        

         由于SpringBoot的jar包同级config配置优先级最高,所以我们把配置放在外面,方便修改。

目录中包含启动,停止,重启脚本。还包含我们需要的jdk,还有jar包。

         启动脚本:

 @echo off
START "XXXServer" jdk1.8.0_241\bin\javaw -jar XXXServer.jar

        停止脚本:

@echo off
set port=8091
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
	echo kill the process %%m who use the port
	taskkill /pid %%m -t -f
	goto q
)
:q

         重启脚本:

@echo off
set port=8091
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
	echo kill the process %%m who use the port
	taskkill /pid %%m -t -f
	goto start
)
:start

START "XXXXServer" jdk1.8.0_241\bin\javaw -jar XXXXServer.jar

        这样的话,就可以满足同一个机器,不同系统,不同JDK版本的要求,随意使用自己的JDK,启动自己的服务。