Если вы используете Gradle Build Tool, вы можете попробовать мой windows-service-plugin , который облегчает использование Apache Commons Daemon Procrun .
Чтобы создать приложение-службу java для Windows с плагином, вам нужно выполнить несколько простых шагов.
Создайте основной класс обслуживания с помощью соответствующего метода.
public class MyService {
public static void main(String[] args) {
String command = "start";
if (args.length > 0) {
command = args[0];
}
if ("start".equals(command)) {
// process service start function
} else {
// process service stop function
}
}
}
Включите плагин в файл build.gradle
.
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.com.github.alexeylisyutenko:windows-service-plugin:1.1.0"
}
}
apply plugin: "com.github.alexeylisyutenko.windows-service-plugin"
Тот же фрагмент скрипта для нового инкубационного механизма плагинов, представленный в Gradle 2.1:
plugins {
id "com.github.alexeylisyutenko.windows-service-plugin" version "1.1.0"
}
Настройка плагина.
windowsService {
architecture = 'amd64'
displayName = 'TestService'
description = 'Service generated with using gradle plugin'
startClass = 'MyService'
startMethod = 'main'
startParams = 'start'
stopClass = 'MyService'
stopMethod = 'main'
stopParams = 'stop'
startup = 'auto'
}
Запустите createWindowsService Задачу gradle для создания дистрибутива службы Windows.
Это все, что вам нужно сделать, чтобы создать простой сервис Windows. Плагин автоматически загружает двоичные файлы Apache Commons Daemon Procrun, распаковывает эти двоичные файлы в каталог распространения службы и создает пакетные файлы для установки / удаления службы.
В каталоге ${project.buildDir}/windows-service
вы найдете исполняемые файлы службы, пакетные сценарии для установки / удаления службы и все библиотеки времени выполнения.
Чтобы установить службу, запустите <project-name>-install.bat
, а если вы хотите удалить службу, запустите <project-name>-uninstall.bat
.
Для запуска и остановки службы используйте <project-name>w.exe
исполняемый файл.
Обратите внимание, что метод обработки службы start должен создать и запустить отдельный поток для выполнения обработки, а затем вернуться. Основной метод вызывается из разных потоков при запуске и остановке службы.
Для получения дополнительной информации, пожалуйста, прочитайте о плагине и Apache Commons Daemon Procrun.