Если вы используете Gradle Build Tool, вы можете попробовать мой плагин windows-service , который облегчает использование 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'
}
Запустите задачу gradle createWindowsService, чтобы создать дистрибутив службы 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.