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

Langage Java Discussion :

Lancer une commande externe


Sujet :

Langage Java

  1. #1
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut Lancer une commande externe
    Bonjour

    Je voudrais lancer un programme externe via un programme Java. Le problème, c'est que ça marche pour certains et pour d'autres non.

    Exemple qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("mspaint");
    Exemple qui ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("wmplayer");
    L'exception levée est : CreateProcess wmplayer : error=2 ...

    Pourtant, quand je tape dans Exécuter (menu Démarrer de Windows), j'ai bien le lecteur Windows Media Player qui se lance. Pareil, si je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("C:/fichier.mp3");
    ça ne marche pas alors que si je tape ça dans Exécuter, le lecteur par défaut se lance et lit le fichier.

    Est-ce normal que certains programmes ne puissent pas se lancer ?

    Nas'

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par Nasky
    Bonjour

    Je voudrais lancer un programme externe via un programme Java. Le problème, c'est que ça marche pour certains et pour d'autres non.

    Exemple qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("mspaint");
    Exemple qui ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("wmplayer");
    L'exception levée est : CreateProcess wmplayer : error=2 ...

    Pourtant, quand je tape dans Exécuter (menu Démarrer de Windows), j'ai bien le lecteur Windows Media Player qui se lance.
    Si tu ne mets pas le chemin complet vers le programme, il faut que celui-ci soit dans le PATH (ce qui n'est pas le cas de wmplayer). Tu dois donc indiquer le chemin complet vers wmplayer.exe.
    Remarque : Si le chemin comporte des espaces tu dois utiliser la méthode exec() qui attend un tableau de String :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec(new String[] {"C:\\Program Files\\Windows Media Player\\wmplayer.exe"});
    Citation Envoyé par Nasky
    Pareil, si je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("C:/fichier.mp3");
    ça ne marche pas alors que si je tape ça dans Exécuter, le lecteur par défaut se lance et lit le fichier.

    Est-ce normal que certains programmes ne puissent pas se lancer ?

    Nas'
    Jusqu'à sa version 5, Java ne fait pas le lien entre un fichier et son application associée, pour cela tu peut utiliser l'API JDIC (tutoriel JDesktop Integrated Components (JDIC)). Note que cette fonctionnalité a été intégrée à Java 6 .

    PS : Je viens juste de terminer un tutoriel qui devrait t'intéresser Exécuter une application externe en Java .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut
    Merci pour ta réponse

    Je me disais bien qu'il y avait une histoire de PATH dans tout ça mais comme "wmplayer" marchait dans Exécuter, je pensais qu'il était dans le PATH ce qui n'est apparemment pas forcément le cas.

    Je vais étudier tes solutions et merci pour le lien qui correspond tout à fait à mes questions

    Nas'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [system] lancer une commande dos
    Par romuluslepunk dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 20/08/2005, 11h54
  2. [C#] Lancer une commande systeme ?
    Par Oberown dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/07/2005, 11h29
  3. [Dos] Lancer une commande dos sans attendre la fin
    Par MrEddy dans le forum Windows
    Réponses: 4
    Dernier message: 09/06/2005, 17h38
  4. Lancer une commande en C.
    Par ronan99999 dans le forum Windows
    Réponses: 2
    Dernier message: 26/07/2004, 16h25
  5. Réponses: 1
    Dernier message: 30/04/2004, 11h36

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