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

Java Discussion :

Lancer un programme externe indépendant de la JVM


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Par défaut Lancer un programme externe indépendant de la JVM
    Bonjour,

    dans un programme java, je souhaite lancer un programme externe (exemple : notepad.exe) totalement indépendant et sans lien avec ma JVM qui vient de le lancer... (pas un processus fils !)

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static final void main(String[] args) throws Exception
    	{
    		final Process p = Runtime.getRuntime().exec("cmd /c start notepad.exe");
    		Thread.sleep(1000);
    		p.destroy();
    	}
    Je n'arrive pas à faire une méthode main qui lance notepad.exe et qui se termine sans que je sois obligé de fermer notepad.
    Or, avec le code ci-dessus, le système attend que je ferme notepad.exe pour se terminer.

    Y'a-t-il une solution ?

    Sous Linux, la commande nohup résoudra-t-elle mon problème ?
    Si oui, comment faire sous Windows ?

    Merci pour votre aide,
    F.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 118
    Par défaut
    je précise : je suis sur une JVM 1.5 et je ne voudrais pas utiliser la librairie JDIC... donc pas de classe Desktop !

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    C'est une spécificité de ton IDE. J'ai reproduit le comportement avec Eclipse.
    Si tu exportes tes quelques lignes dans un jar et que tu l'exécutes en dehors de l'IDE, le programme Java va s'arrêter correctement tout en laissant le process tourner.
    En le lançant via l'IDE, regarde d'abord la liste des processus de ta machine. L'IDE va lancer javaw.exe puis notepad. javaw.exe va s'arrêter mais tu ne le verras pas dans l'IDE. C'est uniquement à l'arrêt de notepad que l'IDE arrêtera le programme Java.
    C'est donc embêtant durant les tests via l'IDE, mais une fois en production, aucun problème
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. Lancer un programme externe
    Par jagwar dans le forum Smalltalk
    Réponses: 2
    Dernier message: 30/01/2011, 21h32
  2. Réponses: 5
    Dernier message: 17/03/2008, 11h51
  3. [Système] Lancer un programme externe
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2007, 07h56
  4. [Système] Lancer un programme externe depuis une page web
    Par needles94000 dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2006, 21h34
  5. lancer un programme externe et continuer
    Par seal3 dans le forum C++
    Réponses: 6
    Dernier message: 31/10/2005, 19h00

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