我有一個 Java 程序,需要先啟動我們的 API 的中間件才能運行。 MiddleWare 包含在 Java Jar 檔案中。
通常,如果我打開兩個單獨的命令提示字元並先啟動 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 命令首先啟動中間件,並且它循環運行直到終止,所以第二個 java.exe 命令直到我執行ctr^c
第一個命令後才會運行。
那麼如何使用一個 CMD 檔案以同步方式啟動這兩個命令呢?
答案1
嘗試使用啟動:
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 %*