Salut à tous et à toutes
voici mon idée : une classe <InstanceUnique> tente de renommer un jar <Application.jar> et SI elle réussit ALORS elle restaure l'ancien nom et lance l'application, SINON on sait que l'application est déjà lancée donc on affiche un message..
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 /* * Classe: InstanceUnique * Auteur: Chatbour */ import java.io.IOException; import java.awt.Desktop; import javax.swing.JOptionPane; public class InstanceUnique { // nom du fichier jar private String nomJar = "application.jar"; // nom temporaire private String nomTmp = "app_tmp.jar"; public InstanceUnique() { try { File leJar = new File(nomJar); if(leJar.renameTo(new File(nomTmp)) == true) { // On est le premier à instancier l'application new File(nomTmp).renameTo(new File(nomJar)); Desktop.getDesktop().open(leJar); } else { // Sinon afficher un message JOptionPane.showMessageDialog(null, "L'application est déjà lancée !"); } } catch(IOException e) { System.exit(-1); } } public static void main(String[] args) { new InstanceUnique(); } }
Dans le zip joint il y a une petite démonstration..
Qu'est-ce que vous en dites ?
Partager