Comment puis-je exécuter une application Java .jar fichier en tant que service Windows Server 2008?
Comment puis-je exécuter une application Java .jar fichier en tant que service Windows sur un serveur Windows 2008? J'ai un fichier jar appelé SomeJavaFile.jar situé sous le C:\SomeDirectory
répertoire sur un Serveur Windows 2008 de la boîte. J'ai l'habitude il suffit d'exécuter ce pot manuellement dans la ligne de commande avec: java –cp SomeJavaFile.jar com.ctg.SomeJavaFile
et je l'ai laissé tourner 24/7.
Le problème avec notre Serveur Windows est si il redémarre j'ai besoin de l'exécuter en tant que service, de sorte qu'il démarre automatiquement en tant que service au démarrage, parce que notre traitement pour Vistakon fonctionne 24/7. J'ai Googlé autour et essayé d'utiliser un wrapper de service et de la sc.exe la commande pour créer le service.
J'ai mis le wrapper service.exe dans le C:\SomeDirectory\
. J'utilise la commande suivante pour créer: sc.exe SomeJavaService binPath= “C:\SomeDirectory\service.exe \”java –jar C:\SomeDirectory\SomeJavaFile.jar\”” type= own start= auto error= ignore
. Cela crée la SomeJavaService service correctement, mais lorsque j'essaie de le démarrer, j'ai une erreur qui dit que le service sur l'Ordinateur Local a démarré puis s'est arrêté.
Les services d'arrêter automatiquement si elles ne sont pas en cours d'utilisation par d'autres services ou programmes. Dois-je modifier mon sc.exe commande pour avoir le travail précédente de la ligne de commande peut-être, par l'ajout, dans le com.ctg.SomeJavaFile? Donc, dois-je changer Cette bocal faut juste exécuter en arrière-plan et constamment sondage/table de ping les C:/poll répertoire puis si il y a des données présentes il traite les données et envoie un fichier d'exportation vers un autre répertoire.
J'ai utilisé cette même .fichier jar depuis des années avec succès et il n'a pas changé, mais je ne peux pas le faire fonctionner comme un service Windows. C'est le site que j'utilise pour obtenir le service wrapper http://code.google.com/p/simple-service-wrapper/. Toute aide serait grandement appréciée!
OriginalL'auteur user1754280 | 2012-10-17
Vous devez vous connecter pour publier un commentaire.
"winsw" est la version autonome du programme d'installation Windows Service d'expédition avec le Java EE Glassfish l'implémentation de référence.
Fonctionne bien, mais n'est pas entièrement poli produit je l'ai utilisé pour exactement cet effet pour un couple d'années. Nécessite .NET dans certaines récente version sur la machine Windows.
https://github.com/kohsuke/winsw
OriginalL'auteur Thorbjørn Ravn Andersen
Je pense que le meilleur pari serait de l'enveloppe de votre application java avec Procrun de Apache Commons Daemon .
OriginalL'auteur aleroot
Selon mon analyse,
La Solution Ralenti sera la rédaction d'un VC++ (.net) Service Windows du programme de création de lancement de la .chauve-souris (qui déclenche le fichier jar)/.exe en tant que service Système avec tout le nécessaire retour d'appel des méthodes smc.
Remarque : 1. Emballage le processus avec sc.exe /srvany.exe ne fonctionnerait pas comme il n'a pas de retour d'appel de processus pour le gds (Gestionnaire de Contrôle de Service). 2. Et java service Wrapper est un tiers de l'API (beaucoup sont sous LGPL).
OriginalL'auteur Arun Pratap
Si vous commencez votre code Java à partir de la ligne de commande en utilisant
java -j some.jar
t-il fonctionner jusqu'à ce que vous terminer le programme, ou faut-il arrêter par lui-même?Il doit y avoir un NON-Démon Fil, qui est en cours d'exécution tout le temps. Une JVM prendra fin, si il n'y a pas de thread en cours d'exécution, ce n'est pas marqué comme démon.
Si vous avez un peu de budget, d'acheter un outil d'installation. J'utilise instll4j. Avec cet outil, vous pouvez créer le service lanceur d'applications et les installer au cours de instllation.
OriginalL'auteur Christian Kuetbach
La solution suivante est fonctionne très bien pour moi d'avoir OpenFire Gestionnaire de Connexion (qui est un fichier jar) en cours d'exécution en tant que service sur un ordinateur Windows Server.
Télécharger et installer le Non-Sucer le Gestionnaire de Service
Je n'ai pas utilisé le lot fait par OpenFire de l'équipe, car il ne fonctionne pas pour moi (dépendances ne trouve pas d'erreur...) Donc, faire un fichier batch avec le code suivant :
et l'enregistrer en tant que
cm_startup.bat
dans le dossier bin du gestionnaire de connexion.Après que vous pouvez créer le service avec NSSM.
Donc, ouvrir un
cmd.exe
et exécutez la commande suivante :.
Doc & exemples
Plus de la documentation et des exemples pour la Non-Sucer le Gestionnaire de Service ici : https://nssm.cc/usage Fait NSSM comme beaucoup d'options disponibles.
Ici est plus complexe exemple :
OriginalL'auteur Meloman