Jika Anda menggunakan Gradle Build Tool, Anda dapat mencoba plugin windows-service-plugin saya , yang memfasilitasi penggunaan Apache Commons Daemon Procrun .
Untuk membuat aplikasi layanan java windows dengan plugin Anda harus melalui beberapa langkah sederhana.
Buat kelas layanan utama dengan metode yang sesuai.
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
}
}
}
Sertakan plugin ke dalam build.gradle
file Anda .
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"
Cuplikan skrip yang sama untuk mekanisme plugin baru, yang menginkubasi, yang diperkenalkan di Gradle 2.1:
plugins {
id "com.github.alexeylisyutenko.windows-service-plugin" version "1.1.0"
}
Konfigurasikan plugin.
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'
}
Jalankan tugas grader createWindowsService untuk membuat distribusi layanan windows.
Itu semua yang perlu Anda lakukan untuk membuat layanan windows sederhana. Plugin akan secara otomatis mengunduh binari Apache Commons Daemon Procrun, mengekstrak binari ini ke direktori distribusi layanan dan membuat file batch untuk instalasi / penghapusan instalasi layanan.
Dalam ${project.buildDir}/windows-service
direktori Anda akan menemukan executable layanan, skrip batch untuk instalasi / penghapusan layanan dan semua pustaka runtime. Untuk menginstal menjalankan layanan <project-name>-install.bat
dan jika Anda ingin menghapus instalasi menjalankan layanan <project-name>-uninstall.bat
. Untuk memulai dan menghentikan layanan gunakan <project-name>w.exe
executable.
Perhatikan bahwa metode layanan penanganan mulai harus membuat dan memulai utas terpisah untuk melakukan pemrosesan, dan kemudian kembali. Metode utama dipanggil dari utas berbeda ketika Anda memulai dan menghentikan layanan.
Untuk informasi lebih lanjut, silakan baca tentang plugin dan Apache Commons Daemon Procrun.