1 つの CMD スクリプトで 2 つの Java プログラムを同期的に起動します。

1 つの CMD スクリプトで 2 つの Java プログラムを同期的に起動します。

動作させるためには、まず API の MiddleWare を起動する必要がある Java プログラムがあります。MiddleWare は Java Jar ファイルに含まれています。

通常、2 つの別々のコマンド プロンプトを開き、最初に jar ファイルを起動し、次に Java プログラムを実行すると、すべてが機能します。

私は現在、クライアント向けの新しいプログラムを梱包しているところですが、アプリケーションを起動する前にミドルウェアを自動的に起動する方法を見つけたいと思っています。次のようなことを試しました。

    @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 を起動し、終了するまでループで実行されるため、2 番目の java.exe コマンドはctr^c最初のコマンドが実行されるまで実行されません。

では、1 つの 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 %*

関連情報