|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Java - Отслеживание состояния запущенного процесса |
|
|
Java - Отслеживание состояния запущенного процесса
|
Пользователь Сообщения: 133 |
Профиль | Сайт | Отправить PM | Цитировать Добрый день! Пишу программу на Java. Которая должна вызывать другую программу из своего кода. Далее моя программка должна дождаться когда запущенный ею процесс завершится. Проблема заключается в том, что стандартной функцией waitFor() отследить завершение процесса не удаётся.
Подскажите пожалуйста. Можно ли средствами Java отследить завершение процесса (написать диспетчер задач)? |
|
------- Отправлено: 11:33, 27-09-2007 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать
Вот так должно работать.
|
------- Отправлено: 13:54, 27-09-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 133
|
Профиль | Сайт | Отправить PM | Цитировать BlackEric, я так и сделал, но не работает. Возможно, то приложение, которое я вызываю, завершившись, оставляет после себя что то, что свидетельствует для waitFor() о его присутствии.
|
------- Отправлено: 14:23, 27-09-2007 | #3 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать Т.е. у вас Java приложение после вызова waitFor() виснет?
Приложение которое вы вызываете завершается корректно? Если корректно, то waitFor() должен вернуть 0. Что он возвращает? ОС какая и версия Java? <команда для запуска приложения>; - что у вас здесь прописано? Вы с другим приложением пробовали? |
------- Отправлено: 16:23, 27-09-2007 | #4 |
Пользователь Сообщения: 133
|
Профиль | Сайт | Отправить PM | Цитировать Цитата BlackEric:
да Цитата BlackEric:
да Цитата BlackEric:
Программа как раз на этой функции и весит. Цитата BlackEric:
ОС Windows XP Pro. Java SDK 1.4, более позднюю версию использовать не желательно. Цитата BlackEric:
Путь к вызываемой программе, через пробелы параметры. Цитата BlackEric:
Нет. Мысль хорошая.Приложение которое я вызываю написано на Delphi. |
|||||||
------- Отправлено: 16:47, 27-09-2007 | #5 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:56, 27-09-2007 | #6 |
Пользователь Сообщения: 133
|
Профиль | Сайт | Отправить PM | Цитировать BlackEric, с Notepad всё работает.
|
------- Отправлено: 17:40, 27-09-2007 | #7 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать Вывод: Java - код рабочий.
Что делает дельфовая прога? Она консольная или с GUI? Нет ли утечек памяти, не закрытых файлов, коннектов к БД и прочая? Народ говорит что может быть проблема если интерфейс со скинами.... |
------- Отправлено: 17:45, 27-09-2007 | #8 |
Пользователь Сообщения: 133
|
Профиль | Сайт | Отправить PM | Цитировать BlackEric, спасибо. Вроде всё заработало сам не понимаю почему. Хотя ПК слабенькие. Я дождался когда процесс исчезнет в диспетчере задач, но возможно нужно было ещё подождать, что бы процесс выгрузился полностью (может он еще не успел это сделать).
Правда, возникла ещё одна проблема. Моё приложение создаёт потоки, каждый из которых на некотором этапе своего исполнения вызывают функцию общего класса, при этом блокируя (запирая) этот класс (запрещая вызов функции другими процессами). Они в свою очередь ждут пока эта функция освободиться. В этой функции как раз и запускается внешний процесс. Вопрос в том, что функция waitFor() почемуто заставляет ждать всё приложение (а не отдельный поток) пока выполнится внешний процесс. BlackEric, прога GUI. Она выполняет некоторую интеграцию. Конекты с БД есть. Вот как проверить есть ли утечки памяти не знаю. Цитата BlackEric:
Я обрадовался, что всё заработало, на самом деле получается через раз. |
|
------- Отправлено: 17:56, 27-09-2007 | #9 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать Цитата EvgeniyQQQ:
Как проверять наличие утечек памяти в Delphi посмотрите в гугле. Как объявлена функция которая блокируется и класс в котором она находится? |
|
------- Последний раз редактировалось BlackEric, 27-09-2007 в 18:22. Причина: Уточнение Отправлено: 18:18, 27-09-2007 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Помогите с написанием bat файла для проверки запущенного процесса. | Stranger404 | Скриптовые языки администрирования Windows | 17 | 17-08-2020 22:50 | |
Проверка запущенного процесса | Anarasius | AutoIt | 2 | 25-06-2014 11:39 | |
.NET - Получение PID процесса, запущенного из программы | Delirium | Программирование и базы данных | 2 | 07-12-2009 02:17 | |
Delphi - отслеживание процесса. | mikola1983 | Программирование и базы данных | 4 | 02-10-2007 17:51 | |
А можно для уже запущенного процесса сменить user-a ? | ukms | Программирование и базы данных | 6 | 23-10-2002 13:51 |
|