要使该过程自动化,您应该在启动服务器之前将要部署的应用程序复制到 tomcat 部署文件夹中。如果您将任何 .war 包复制到 TOMCAT/webapps 文件夹,它将在 Tomcat 启动时被部署。
所以你需要做的就是复制文件。这里有四个不同的例子,说明如何在 Java 中做到这一点。要么,要么你可以只执行一个复制命令。
可能最简单且最不容易出错的方法是在 java 7 中使用 Files:
Files.copy(source.toPath(), dest.toPath());
完成后,然后执行启动命令。
更新:关机,你有等待问题。您可以等待在批处理文件中执行以下操作:
CALL shutdown.bat
:LOOP
tasklist /FI "WINDOWTITLE eq Tomcat" | find /C /I ".exe" > NUL
IF ERRORLEVEL 1 (
GOTO :EOF
) ELSE (
ECHO Tomcat is still running
SLEEP 1
GOTO LOOP
)
此代码假定一个名为“Tomcat”的 Tomcat 窗口。例如,如果您将 Tomcat 作为服务运行,则该假设不成立。但是对于服务,使用 sc 查询有更可靠的方法:
SC stop "tomcat"
:LOOP
SC query "tomcat" | FIND "STATE" | FIND "RUNNING" > NUL
IF ERRORLEVEL 1 (
GOTO :EOF
) ELSE (
ECHO Tomcat is still running
SLEEP 1
GOTO LOOP
)
这里假设服务名称“tomcat”。
更新2:忘了我们在这里谈论java - 使用上面的bat,您可以使用java .waitFor(),或者您也可以在java文件中编写相同的逻辑。