Exécution d'une application Java en tant que service
Je voudrais exécuter une application Java en tant que service. Malheureusement, je suis limité dans ce que je ne peux pas utiliser quelque chose comme la Java Service Wrapper (ce qui semble être un excellent outil).
Est-il un moyen de l'exécution d'un fichier exécutable JAR, comme un service, sans s'appuyer sur des applications externes? J'ai actuellement le service est installé, mais il ne parvient pas à démarrer. C'est là que je suis coincé et je n'ai pas été en mesure de trouver quoi que ce soit sur Google, autres que des renseignements sur la JSW.
- Fait référence à stackoverflow.com/questions/68113/...
- Pourquoi ne pouvez-vous pas utiliser Java Service Wrapper?
- Quelques raisons différentes. Tout d'abord, et avant tout, est l'octroi de licences (GPL - je ne peux pas open source le code que c'est d'être appliquées).
- Jason, pouvez-vous utiliser une version plus ancienne de JSW avant, ils ont changé la licence? Je ne crois pas qu'ils rétroactivement changé la concession de licences sur des versions plus anciennes
- Basé sur le texte sur wrapper.tanukisoftware.com/doc/english/licenseCommunity.html il est très clair que l'Édition de la Communauté ne peut pas être utilisé avec un non-programme Open Source.
- Cette question et cette question devrait aider aussi
Vous devez vous connecter pour publier un commentaire.
Il y a un LGPL clone de Java Service Wrapper: http://yajsw.sourceforge.net
BTW, IANAL, mais je pense que JSW gens sont à la propagation de l'ICS, et leur logiciel peut être utilisé pour activer des applications commerciales sous licence GPL, tout comme on peut gzip une application commerciale pour la redistribution. Je pourrais être tout à fait tort à ce sujet, bien 🙂
Une autre option, Apache Commons Daemon est procrun.
Voir http://commons.apache.org/daemon/
Un programme qui devrait fonctionner comme un service windows doit assurer certaines fonctions que le gestionnaire de services windows utilise pour communiquer avec ce service.
Tant qu'il n'y a pas de JVM qui implémente cette fonction directement (et je ne connais aucun) vous aurez besoin d'une sorte de wrapper.
J'ai utilisé avec succès srvany pour un basé sur java windows service (Fondamentalement, il permet d'exécuter n'importe quel programme en tant que service windows et il fonctionne très bien avec java)
Je n'ai pas essayé (encore), mais Launch4j dirait qu'il pourrait répondre à vos besoins.
une option de plus winrun4j. la licence est de l'éclipse du CPL.
Vous pouvez utiliser NSSM comme ceci:
Le moyen le plus simple que j'ai trouvé était RunAsService.
Un collègue recommandé qu'un outil appelé SC, mais je n'ai pas l'essayer.
JSmooth peut le faire, et il est scriptable avec ant.