Eseguire l'applicazione Java come servizio


Vorrei eseguire un'applicazione Java come servizio. Sfortunatamente, sono limitato dal fatto che non posso usare qualcosa come Java Service Wrapper (che sembra essere uno strumento eccellente).

Esiste un modo per eseguire un JAR eseguibile, come servizio, senza fare affidamento su applicazioni esterne? Attualmente ho installato il servizio, ma non si avvia. Questo è dove mi sono bloccato e non sono stato in grado di trovare nulla su Google oltre alle informazioni su il JSW.

Author: palacsint, 2009-09-10

8 answers

Esiste un clone LGPL del Wrapper del servizio Java: http://yajsw.sourceforge.net

BTW, IANAL, ma sospetto che le persone di JSW stiano diffondendo FUD, e il loro software può essere usato per abilitare il servizio di applicazioni commerciali sotto licenza GPL, proprio come si può gzip un'app commerciale per la ridistribuzione. Potrei sbagliarmi completamente su questo, però:)

 11
Author: ykaganovich, 2009-09-10 18:16:58

Un'altra opzione, procrun del demone Apache Commons.

Vedere http://commons.apache.org/daemon /

 8
Author: cpierceworld, 2012-07-19 09:26:30

Un programma che deve essere eseguito come servizio Windows deve fornire determinate funzioni utilizzate da Windows Service Manager per comunicare con tale servizio.

Finché non esiste una JVM che implementa direttamente queste funzioni (e non ne so nulla) avrai bisogno di un qualche tipo di wrapper.

Ho usato con successo srvany per un servizio Windows basato su java (in pratica permette di eseguire qualsiasi programma come servizio Windows e funziona bene con java)

 6
Author: Wolfgang, 2009-09-10 17:56:54

Non l'ho ancora provato (ancora), ma Launch4j sembra che possa soddisfare le tue esigenze.

 2
Author: dustmachine, 2009-09-10 16:58:26

Un'altra opzione winrun4j. la licenza è CPL di eclipse.

 1
Author: Peter Smith, 2009-09-10 20:09:29

Puoi usare NSSM in questo modo:

nssm install MyService "%JAVA_HOME%\bin\java.exe" -jar "path\to\the\file.jar"
 1
Author: Anthony O., 2016-05-24 14:15:35

Il modo più semplice che ho trovato è stato RunAsService.

Un collega ha consigliato uno strumento chiamato SC, ma non l'ho provato.

 0
Author: toba303, 2010-06-18 09:53:10

JSmooth può farlo, ed è scriptable con ant.

 0
Author: Thorbjørn Ravn Andersen, 2010-10-11 08:18:52