Windowsバッチファイルの作成は初めてです。次のバッチ ファイルを使用して、新しい javaw プロセスを開始し、バッチ ファイル内のコマンドの出力をログ ファイルにリダイレクトします。
@echo OFF
call :sub >start-demo.jar.cmd.log
exit /b
:sub
echo starting demo.jar ..
start "" javaw -jar demo.jar
echo done ..
正常に動作しており、バッチ ファイルを実行すると、出力がログ ファイルに正しくリダイレクトされ、javaw プロセスも新しいプロセス ID で開始されることがわかります。
バッチ ファイルの実行後にログ ファイルにリダイレクトされる出力を次に示します。
starting demo.jar ..
done ..
しかし、バッチ ファイルの実行後にログ ファイルを編集または削除しようとすると、ファイルが Java(TM) Platform SE バイナリで開かれているため、操作を完了できないと表示されます。
javaw プロセスを強制終了した後でのみ、ログ ファイルを編集または削除できます。
なぜこれが起こっているのか、これを修正する方法はわかりません。javaw プロセスが正常に開始されたら、ログ ファイルを編集または削除できるはずです。これは正しいです?
私のOSはWindows 10 Enterprise 64ビットです。