Eu tenho um programa Java que requer que o MiddleWare da nossa API seja iniciado primeiro para que funcione. O MiddleWare está contido em um arquivo Java Jar.
Normalmente tenho tudo funcionando se eu abrir dois prompts de comando separados e iniciar o arquivo jar primeiro e depois executar o programa java.
Estou preparando o novo programa para nossos clientes e gostaria de encontrar uma maneira de iniciar automaticamente o MiddleWare antes de iniciar o aplicativo. Eu tentei algo assim,
@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 %*
)
Mas como o primeiro comando java.exe inicia o MiddleWare primeiro e ele é executado em um loop até ser finalizado, o segundo comando java.exe não é executado até que eu execute ctr^c
o primeiro comando.
Então, como eu poderia iniciar os dois comandos de forma síncrona usando um arquivo CMD?
Responder1
Tente usar iniciar:
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 %*
Se você quiser que a janela permaneça aberta use:
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 %*