IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Instance unique d'un programme (sans sockets ni fichier temporaire)


Sujet :

Entrée/Sortie Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Par défaut Instance unique d'un programme (sans sockets ni fichier temporaire)
    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 ?
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Instance unique d'application en java: fermeture des sockets
    Par Bundy*Al dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/03/2014, 09h12
  2. [Débuter] Instance unique et sockets
    Par clairetj dans le forum Réseau
    Réponses: 2
    Dernier message: 09/10/2013, 08h21
  3. Instance Unique de programme, les exemples ne marchent pas
    Par novatronics dans le forum Général Java
    Réponses: 6
    Dernier message: 30/03/2009, 15h33
  4. [VB6] [DLL] DLL à instance unique
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 19/09/2003, 08h07
  5. Gestion d'un programme sans Souris ! ???
    Par altahir007 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 03/04/2003, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo