Процесс не может получить доступ к файлу, потому что он используется другим процессом - PullRequest
1 голос
/ 30 августа 2010

У меня есть программа, которую я сделал на C, которая перезапустит мое Java-приложение после запуска в течение 2 часов.

Прежде всего, я запускаю свою Java-программу, используя командный файл,

@echo off
java -server -Xmx1024m -Xbootclasspath/p:"bin;" website.Server >>C:\web_logs\console.log

Работает отлично, но через 2 часа я использую Runtime.getRuntime ();на Java для чистого подготовленного перезапуска;выполнить мою C программу "Restarter.exe".Restart.exe убивает процесс java, а также убивает процесс cmd (я убил командный процесс, потому что я не был уверен, почему он продолжает говорить «... процесс не может получить доступ к файлу ... используется другим процессом».

И это прекрасно работает, если я не использую журнал окон ">>" после моих аргументов.

Это просто когда я пытаюсь войти в консоль, она не перезапускается. У меня естьв консоли происходит много отладки, а командная строка windows может вспомнить только столько. Поэтому я использовал ">>", чтобы войти в файл и прочитать его позже. Я не хочу регистрировать файл через java, потому что это что-тоМне не нужно ничего делать, если я использую компьютер с Windows.

Итак, мой вопрос: как мне по-прежнему регистрировать консоль, используя «>>» после моих аргументов, чтобы она все еще перезагружалась?процесс используется, но я думал, что убил его, убив java и cmd? Что я могу сделать, чтобы исправить это или завершить процесс, чтобы я мог проанализировать тот же файл?

Спасибо.

1 Ответ

2 голосов
/ 31 августа 2010

Я рекомендую установить Process Explorer , и когда вы получите это сообщение об ошибке, используйте функцию «Найти дескриптор» и посмотрите, какой процесс удерживает дескриптор этого файла.

Отправить обратно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...