Question

Je recherche le meilleur moyen de faire fonctionner mon programme Java sur le bureau en arrière-plan ( démon / service ?) sur la plupart des plates-formes (Windows, Mac OS, Linux [Ubuntu en particulier]).

Par "meilleur moyen" J'espère trouver un moyen qui:

  1. nécessite un minimum nombre de codes spécifiques à la plate-forme.
  2. ne demande pas à l'utilisateur de faire quoi que ce soit qu'un utilisateur général ne pourrait / ne ferait pas
  3. ne pas être une ressource porcine.

Je comprends que mes exigences sont peut-être irréalistes, mais j'espère qu'il existe une sorte de "meilleure pratique". pour ce type de situation.

Comment aller de l'avant?

Était-ce utile?

La solution

Vous pouvez utiliser le SystemTray . classes et installez votre application comme n'importe quelle autre sur la plate-forme par défaut.

Pour Windows, il peut s’agir d’une tâche planifiée exécutée au démarrage. Pour Linux et OSX, je ne sais pas (à part crontab, qui est en quelque sorte trop technique), mais je suis sûr qu'ils ont tous les deux la possibilité de faire la même chose facilement.

Malheureusement, Apple n'a pas encore terminé le port 1.6.

Ce ne sera pas un vrai démon, mais une application telle que Google Desktop.

J'ai entendu dire que le quartz était une bonne option. Mais je ne l'ai jamais utilisé.

Autres conseils

Vous pouvez exécuter une application Java en tant que service (Windows) ou démon (Linux) à l'aide de Apache. Code du démon Commons .

Structure

Daemon est composé de 2 parties. L’un écrit en C qui fait l'interface avec le système d’exploitation et l’autre en Java qui fournit l’API du démon.

plates-formes

Les plates-formes analogues à Win32 et UNIX sont prises en charge. Pour les plates-formes Win32, utilisez procrun. Pour les plateformes UNIX, utilisez jsvc.

code Java

Vous devez écrire une classe (MyClass) qui implémente les méthodes suivantes:

* void load(String[] arguments): Here open the configuration files, create the trace file, create the ServerSockets, the Threads
* void start(): Start the Thread, accept incoming connections
* void stop(): Inform the Thread to live the run(), close the ServerSockets
* void destroy(): Destroy any object created in init()

Vous pouvez transformer n'importe quel programme Java en service / démon à l'aide de Wrapper Service Java . Il est utilisé par plusieurs projets OSS et est fourni avec Nexus Maven Repository Manager afin de pouvoir être installé en tant que service prêt à l'emploi. Pour vous en servir, vous devez simplement créer un fichier de configuration, puis exécuter un simple fichier de commandes afin de créer le service sous Windows ou de copier un script d'initialisation dans le niveau d'exécution correct sous Linux.

Si vous n'avez pas besoin d'une solution gratuite, vous pouvez utiliser Advanced Installer (www.advancedinstaller.com). Il permet également de gagner le service win ainsi que le programme d'installation MacOS à partir de votre fichier JAR, et plus encore.

Découvrez JDIC, ?? le projet de composants Java Desktop Integration. Il prend en charge l’intégration de postes de travail comme la barre des tâches (ou l’équivalent) avec une API multiplate-forme.

D'autres ont mentionné Quartz, un planificateur de travaux d'entreprise. Il peut être léger, en fonction des tâches planifiées, mais il ne possède aucune fonctionnalité intrinsèquement orientée sur le bureau. Au contraire, nombre de ses fonctionnalités dépendent du support de l'entreprise, comme une base de données relationnelle. Si votre application planifie principalement des tâches, un service sans tête Quartz exécutant des tâches, avec un client de bureau pour interagir avec le service, constitue une approche raisonnable.

Le projet Apache Directory Daemon semble être le meilleur moyen de le faire sur plusieurs plates-formes (avec Wrappers Java pour JSVC sous POSIX et procrun sous Windows).

Les gens ont parfois des difficultés à trouver prunsrv.exe et / ou prunmgr.exe (composants de procrun), ce qui n’est pas bien documenté sur le site Apache. En général, il se trouve dans les archives (remarque. ils disent que procrun est tomcat5. exe)

pour Windows, vous pouvez le trouver ici: http: // archive .apache.org / dist / commons / daemon / binaries / windows / commons-daemon-1.0.7-bin-windows.zip (contient les versions 32 et 64 bits)

vous n'avez pas besoin d'implémenter d'interface démon ni de la télécharger du tout, prunsrv peut être utilisé pour transformer n'importe quelle application en service Windows

parcourir cette archive pour d'autres plates-formes

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top