Je désire que l'utilisateur ne puisse lancer qu'une application à la fois sur un PC.
Comment faire cela ?
Merci. :wink:
Version imprimable
Je désire que l'utilisateur ne puisse lancer qu'une application à la fois sur un PC.
Comment faire cela ?
Merci. :wink:
Tu exécutes quoi: un main...
Oui, mais les classes sont dans un fichier jar. L'utilisateur peut cliquer plusieurs fois sur ce fichier jar et donc l'application peut se lancer plusieurs fois.
bah tu peux créer un fichier .lock, par exemple, et tester sa présence pour savoir si une instance de ton application est en cours d'exécution...
Ou alors, par exemple, utiliser un socket et faire un bind sur le port 65432. Si le bind est impossibble, une application tourne déjà...
Ou encore... :roll:
C'est sale ! si ton appli plante bonjour pour la relancer...Citation:
bah tu peux créer un fichier .lock, par exemple, et tester sa présence pour savoir si une instance de ton application est en cours d'exécution...
Regardes les mutex , en delphi ca marche mais je ne sais pas si en java ca existe...
Il me semble que la question a déjà été posée et qu'une solution avait été retenue
A vérifier 8O
Merci pour cette solution, qui est meilleure que la mienne j'en conviens.Citation:
Envoyé par heid
Quel objet utilises-tu pour ton mutex? Comment utilises-tu de façon raisonnablement simple un mutex inter applications en Java? Je suis positivement curieux de voir la chose à l'oeuvre (je pourrai l'utiliser à mes propres fins).
oui moi aussi je suis interessé :)
La question a été posée par luz le 22 fevrier 2004 :wink:
Exact et la solution de bulbo me sert toujours :lol:
http://www.developpez.net/forums/vie...hlight=#866290
Oh tiens, on propose d'utiliser des sockets dans cette solution... j'ai déjà vu ça quelque part, un peu plus haut... :lol:
L'excellente question est de savoir si un port est "dé - bindé" si l'appli se crashe... et dans ce cas il faudra recourir au mutex :mrgreen:
Ah oui tient exact, port 65432 :oops: .
Mais c'était écrit tout petit non ? :wink:
tu peux nous mettre le code que tu as utiliser pour que l'on gagne du temps a notre tour stp...ca serait bien sympa :)Citation:
Envoyé par iuz
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class MonAppli { private static ServerSocket serverSocket; public MonAppli() { } public static void main(String[] args) { try { serverSocket = new ServerSocket(1330); }catch (Exception ex) { // le port est occupé alors on coupe l'appli System.exit(0); } new MonAppli(); } }
ok merci bien mais c quoi ton histoire de port 65432 :)
bah c'est un numéro de porc au hasard... :gouiiik:
En attendant le mutex, bien plus propre, ça me semble être une bonne solution.
mais ouep mais explik le mutex...c vaste...on c meme pas si ca existe sous java...moi g pas delphi la tout de suite sous la main :D
Je suis moi-même impatient. J'ai ressorti une vieille appli dont une seule instance doit tourner à la fois, je me réjouis de terminer son peaufinage.
Glob avait donné cette méthode à 13h52. Pour ce qui est du port, le principal c'est d'en utiliser un qui ne sert pas à d'autres applications, et il suggérait le port 65432.