Inicie dois programas java de forma síncrona com um script CMD

1

Eu tenho um programa em Java que requer que o MiddleWare da nossa API seja iniciado primeiro para que ele 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 em segundo lugar.

Estou arrumando o novo programa para nossos clientes agora 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 ctr^c o primeiro comando.

Então, como eu poderia iniciar os dois comandos de maneira síncrona usando um arquivo CMD?

    
por Kyle Bridenstine 20.07.2014 / 21:29

1 resposta

1

Tente usar o começo:

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 %*
    
por 20.07.2014 / 22:00