Je désire que l'utilisateur ne puisse lancer qu'une application à la fois sur un PC.
Comment faire cela ?
Merci.
Je désire que l'utilisateur ne puisse lancer qu'une application à la fois sur un PC.
Comment faire cela ?
Merci.
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...
Glob
What would you do if you were not afraid?
Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
C'est sale ! si ton appli plante bonjour pour la relancer...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
Merci pour cette solution, qui est meilleure que la mienne j'en conviens.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).
Glob
What would you do if you were not afraid?
Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
oui moi aussi je suis interessé
Hum hum hum...géant vert ! ! !
Le meilleur moyen de trouver c encore de chercher ! ! !
La question a été posée par luz le 22 fevrier 2004
Exact et la solution de bulbo me sert toujours
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...
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
Glob
What would you do if you were not afraid?
Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
Ah oui tient exact, port 65432 .
Mais c'était écrit tout petit non ?
tu peux nous mettre le code que tu as utiliser pour que l'on gagne du temps a notre tour stp...ca serait bien sympaEnvoyé par iuz
Hum hum hum...géant vert ! ! !
Le meilleur moyen de trouver c encore de chercher ! ! !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Hum hum hum...géant vert ! ! !
Le meilleur moyen de trouver c encore de chercher ! ! !
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.
Glob
What would you do if you were not afraid?
Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
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
Hum hum hum...géant vert ! ! !
Le meilleur moyen de trouver c encore de chercher ! ! !
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
What would you do if you were not afraid?
Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager