プロセスを自動化するには、サーバーを起動する前に、展開するアプリを tomcat 展開フォルダーにコピーする必要があります。.war パッケージを TOMCAT/webapps フォルダーにコピーすると、Tomcat の起動時にデプロイされます。
したがって、ファイルをコピーするだけです。Java でそれを行う方法の 4 つの異なる例を次に示します。それか、コピーコマンドを実行するだけです。
おそらく最も簡単でエラーが発生しにくいのは、Java 7 でファイルを使用して行うことです。
Files.copy(source.toPath(), dest.toPath());
その後、exec start コマンドを実行します。
更新: シャットダウンすると、待機の問題が発生します。バッチファイルで次のようなことをするのを待つことができます:
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」とします。
Update2: ここで Java について話していることを忘れていました。上記のバットを使用して、Java .waitFor() を使用するか、Java ファイルで同じロジックをプログラムすることもできます。