我有一个 Java 程序,需要先启动 API 的 MiddleWare 才能运行。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 %*
)
ctr^c
但是因为第一个 java.exe 命令首先启动 MiddleWare,并且它循环运行直到终止,所以第二个 java.exe 命令直到第一个命令才运行。
那么如何使用一个 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 %*