Пакетный файл для запуска нового процесса JavaScript не работает должным образом - PullRequest
0 голосов
/ 15 марта 2020

Я новичок в написании 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.

...