4 votes

Comment deux instances d'une application peuvent-elles communiquer en Java ?

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 ?

7voto

Riduidel Points 13456

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.

3voto

tim_yates Points 63521

É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

1voto

thelost Points 4691

Vous pourriez utiliser des ports.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X