Простой способ запуска java-приложения как сервиса
Покопавшись на просторах интернета пришел к выводу что запуск java-приложений как сервисов - служб это задача востребованная, но не всегда легко реализуемая.
- Можно использовать сторонние решения но они не всегда бесплатны, не всегда подходят под наши критерии использования и т.д.
- Конечно можно перелопатить Tomcat и заставить его стартовать нашу jar-ку но там тоже есть подводные камни.
- И есть еще одно решение - можно просто написать windows service используя любой знакомый язык программирования под винду, и научить его работать с нашим java-приложением. Вот этим решением мы и воспользуемся.
Описание :
Написать службу которая при старте будет выполнять файл Start.bat а при завершении Stop.bat. И в дополнение составить несколько batch- файлов для установки, запуска, останова и деинстоляции сервиса.
не буду вдаваться в подробности создания сервиса. его я написал на delphi за 10 минут. потому как прекрасная IDE Delphi 7 вечна ! и может все, особенно выполнять всю работу за нас!
если кому интересен код то , вот все что я добавил к стандартному проекту
procedure TService.ServiceStart(Sender: TService;var Stopped: Boolean)
begin
ShellExecute(Service.ServiceThread.Handle, 'open', 'start.bat', nil, PChar(ExtractFilePath(ParamStr(0))), SW_MAXIMIZE)
end;
//метод выполняемый на завершение
procedure TService.ServiceStop(Sender: TService;var Stopped: Boolean);
begin
ShellExecute(Service.ServiceThread.Handle, 'open', 'stop.bat', nil , PChar(ExtractFilePath(ParamStr(0))) , SW_MAXIMIZE)
end;
и вот это в uses ShellAPI;
сервис у нас готов, осталось дело за малым - батники!
service_install.bat
Service_name.exe /install /silent
- /silent - для того что бы не выводился диалог о том что установка прошла успешно
service_uninstall.bat
Service_name.exe /uninstall /silent
service_start.bat
Net start Service_Title
service_stop.bat
Net stop Service_Title
вот и все. Теперь создадим в каталоге с сервисом файлы Start.bat и Stop.bat и в них напишем команды для запуска и останова java-машины с приложением на борту.
для примера выкладываю ссылку на архив с готовыми батниками и сервисом. сервис проверен на Windows XP - Seven.
Комментариев нет:
Отправить комментарий