Запустите две программы Java одновременно с помощью одного скрипта CMD

Запустите две программы Java одновременно с помощью одного скрипта CMD

У меня есть программа Java, которая требует, чтобы MiddleWare нашего API был запущен первым, чтобы она работала. MiddleWare содержится в файле Java Jar.

Обычно у меня все работает, если я открываю две отдельные командные строки и сначала запускаю jar-файл, а затем запускаю Java-программу.

Я сейчас упаковываю новую программу для наших клиентов и хотел бы найти способ автоматически запускать MiddleWare перед запуском приложения. Я пробовал что-то вроде этого,

    @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 %*
    )

Но поскольку первая команда java.exe сначала запускает MiddleWare, и он работает в цикле до тех пор, пока не будет завершен, вторая команда java.exe не запустится, пока не будет выполнена ctr^cпервая команда.

Как же мне запустить обе команды синхронно, используя один CMD-файл?

решение1

Попробуйте использовать команду start:

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 %*

Если вы хотите, чтобы окно оставалось открытым, используйте:

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 %*

Связанный контент