Tengo un programa Java que requiere que se inicie primero el MiddleWare de nuestra API para que funcione. El MiddleWare está contenido en un archivo Java Jar.
Normalmente tengo todo funcionando si abro dos símbolos de comando separados e inicio el archivo jar primero y luego ejecuto el programa Java en segundo lugar.
Estoy empacando el nuevo programa para nuestros clientes ahora y me gustaría encontrar una manera de iniciar automáticamente MiddleWare antes de iniciar la aplicación. Probé algo como esto,
@echo off
set APP_HOME=C:\Temp\Hammer
rem Set APP_HOME to the place where you installed Hammer.
if "%~1"=="" (
echo You must provide a Python script to run.
pause
) else (
java.exe -jar C:\GMSEC_API\bin\bolt.jar
java.exe -cp "%APP_HOME%\lib\jython.jar;%APP_HOME%\lib\Hammer.jar;%APP_HOME%\lib\gmsecapi.jar;%APP_HOME%\examples\Python;%APP_HOME%\jython2.5.3\Lib;%CLASSPATH%" bridenstine.hammer.main.Main %*
)
Pero debido a que el primer comando java.exe inicia MiddleWare primero y se ejecuta en un bucle hasta que finaliza, el segundo comando java.exe no se ejecuta hasta que se ejecuta ctr^c
el primer comando.
Entonces, ¿cómo podría iniciar ambos comandos de forma sincrónica usando un archivo CMD?
Respuesta1
Intente usar inicio:
start java.exe -jar C:\GMSEC_API\bin\bolt.jar
start java.exe -cp "%APP_HOME%\lib\jython.jar;%APP_HOME%\lib\Hammer.jar;%APP_HOME%\lib\gmsecapi.jar;%APP_HOME%\examples\Python;%APP_HOME%\jython2.5.3\Lib;%CLASSPATH%" bridenstine.hammer.main.Main %*
Si desea que la ventana permanezca abierta, utilice:
start cmd /k java.exe -jar C:\GMSEC_API\bin\bolt.jar
start cmd /k java.exe -cp "%APP_HOME%\lib\jython.jar;%APP_HOME%\lib\Hammer.jar;%APP_HOME%\lib\gmsecapi.jar;%APP_HOME%\examples\Python;%APP_HOME%\jython2.5.3\Lib;%CLASSPATH%" bridenstine.hammer.main.Main %*