Comment empêcher de lancer plusieurs fois simultanément une application Java ?

Par exemple, vous venez de programmer un serveur, vous voulez vous assurer qu’une seule instance est lancée, pour éviter de provoquer des comportements inattendus (une instance reçoit une requête d’un client, et l’autre reçoit son identifiant). En général, quel que soit le programme, il peut être pratique d’interdire plusieurs lancements de la même application.

C’est à cette question que cet article se propose de répondre.

Il ne faut pas confondre instance unique d’une application et instance unique d’une classe, cela n’a rien à voir. Une instance unique de classe peut être assurée en utilisant le design pattern Singleton.

public final class MonSingleton {
 
    private static final MonSingleton instance = new MonSingleton();
 
    private MonSingleton() {
        //...
    }
 
    public static MonSingleton getMonSingleton() {
        return instance;
    }
 
}
Tagged:

Laisser un commentaire