Je suis en train de développer une nouvelle application Java Desktop. Quelque chose comme un lecteur multimédia. Je veux charger la plupart des ressources en arrière-plan lorsque l'ordinateur démarre. Mais les utilisateurs peuvent désactiver cette option depuis l'application ou en utilisant un autre utilitaire. Donc, ce que je veux faire, c'est que si une instance de l'application est déjà en cours d'exécution et que l'utilisateur relance l'application, je puisse communiquer avec l'instance déjà en cours d'exécution afin qu'elle puisse lancer une nouvelle fenêtre ?
Réponses
Trop de publicités?La façon la plus connue de le faire est d'ouvrir une ServerSocket lorsque la première application démarre sur un port bien connu.
Si le chargement de ServerSocket échoue, c'est probablement parce qu'une instance est déjà en cours d'exécution.
Dans ce cas, vous pouvez ouvrir un Socket et commencer à communiquer vos ordres entre les deux instances.
Mais vous pouvez également utiliser des solutions beaucoup plus sophistiquées, comme Jini ou JGroups.
Écrire l'application pour qu'elle ait une partie serveur
Lorsqu'il démarre, il essaie de communiquer avec le serveur (s'il est déjà en marche), et si cela fonctionne, le serveur devrait ouvrir une nouvelle fenêtre, et le client devrait mourir.
Cela devrait vous donner une vue d'ensemble :
http://java.sun.com/docs/books/tutorial/networking/sockets/clientServer.html