Я новичок в написании 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 также запускается с новым идентификатором процесса, когда я выполняю пакетный файл.
Вот выходные данные, перенаправленные в файл журнала после выполнения пакетного файла.
starting demo.jar ..
done ..
Однако, когда я пытаюсь отредактировать или удалить файл журнала после выполнения пакетного файла, он говорит, что действие не может быть завершено, потому что файл открыт в двоичном файле Java (TM) Platform SE.
Только после завершения процесса javaw я могу редактировать или удалять файл журнала.
Не уверен, почему это происходит и как это исправить. Я ожидаю, что после успешного запуска процесса javaw я смогу редактировать или удалять файл журнала. Это правильно?
Моя ОС Windows 10 Enterprise 64 bit.