Exécuter JAR comme un service Windows [dupliquer]

Cette question a déjà une réponse ici:

  • comment créer un service windows à partir de java jar? 8 réponses

j'ai un fichier JAR et je voudrais l'enregistrer et l'exécuter comme un service Windows. Avec un JAR bien configuré et des crochets d'arrêt JVM déjà enregistrés, cela ne devrait pas être un gros travail.

j'ai déjà avoir un bocal avec externe lib dir, je peux commencer par java -jar My.jar et arrêter avec Ctrl+C.

j'ai aussi vérifié JSL, JSmooth, et procrun d'Apache sans solution de travail.

j'aurais besoin d'une solution de travail avec un bon tutoriel.

mise à Jour: j'ai réussi avec procrun (enfin), et le manuel.NET Service wrapper aussi... Voici le code de la version procrun de mon installation.chauve-souris:

set PR_PATH=%CD%
SET PR_SERVICE_NAME=MyService
SET PR_JAR=MyService.jar
SET START_CLASS=org.my.Main
SET START_METHOD=main
SET STOP_CLASS=java.lang.System
SET STOP_METHOD=exit
rem ; separated values
SET STOP_PARAMS=0
rem ; separated values
SET JVM_OPTIONS=-Dapp.home=%PR_PATH%
prunsrv.exe //IS//%PR_SERVICE_NAME% --Install="%PR_PATH%prunsrv.exe" --Jvm=auto --Startup=auto --StartMode=jvm --StartClass=%START_CLASS% --StartMethod=%START_METHOD% --StopMode=jvm --StopClass=%STOP_CLASS% --StopMethod=%STOP_METHOD% ++StopParams=%STOP_PARAMS% --Classpath="%PR_PATH%%PR_JAR%" --DisplayName="%PR_SERVICE_NAME%" ++JvmOptions=%JVM_OPTIONS%

je présume

  • exécutez ceci à partir du même répertoire où le jar et le prunsrv.exe est
  • le bocal a son Manifeste de fonctionnement.MF
  • et vous avez des crochets d'arrêt enregistrés dans JVM (par exemple avec context.registerShutdownHook () au printemps)...
  • ne pas utiliser de chemins relatifs pour les fichiers en dehors du jar (par exemple log4j doit être utilisé avec log4j.appender.X. Fichier=${app.accueil} / logs / my.journal ou quelque chose de semblable)

Merci à l'équipe d'apache procrun ( http://commons.apache.org/proper/commons-daemon//procrun.html) et à marifnst (http://a089lp.wordpress.com/tag/procrun-tutorial/)

mise à Jour 2: un nouveau bon tutoriel avec winsv: https://dzone.com/articles/spring-boot-as-a-windows-service-in-5-minutes

15
demandé sur BTakacs 2013-02-27 18:33:56

3 réponses

Essayez ce java lanceur

http://winrun4j.sourceforge.net/

libre et open source

démarrer le service exemple à la fin de la page

7
répondu Koroed 2013-02-27 14:47:10

vous pouvez utiliser Java Service Wrapper

http://wrapper.tanukisoftware.com/doc/english/download.jsp

ils ne doivent pas distribuer la version windows x86_64 compilée de Comunity Edition mais vous pouvez la construire vous-même.

4
répondu Gunnarr 2013-09-30 01:22:55