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 :

Problème d'excéution de commande systeme.


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 87
    Points : 89
    Points
    89
    Par défaut Problème d'excéution de commande systeme.
    Bonjour, voila j'ai un problème avec l'exécution de la commande cd sous GNU/Linux depuis Java.
    Ainsi,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    			Process proc = Runtime.getRuntime().exec("cd "+path);
    me sort une erreur : java.io.IOException: Cannot run program "cd": java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
    at java.lang.Runtime.exec(Runtime.java:593)
    at java.lang.Runtime.exec(Runtime.java:431)
    at java.lang.Runtime.exec(Runtime.java:328)
    at app.Start.main(Start.java:35)
    Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
    at java.lang.ProcessImpl.start(ProcessImpl.java:65)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:452


    Sous GNU/Linux, la commande cd n'existe pas en tant que programme externe dans les répertoires /bin /usr/bin.

    Quelle est la solution ?


    J'ai absolument besoin de changer de path, je ne peux pas me contenter de faire /path/programme car je suis en train de faire un GUI pour un programme, et ce programme ne peut être lancé que depuis son répertoire...

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par clebig Voir le message
    Sous GNU/Linux, la commande cd n'existe pas en tant que programme externe dans les répertoires /bin /usr/bin, elle est compilée nativement dans le noyau.
    En fait elle est intégré en builtins dans le shell...

    Citation Envoyé par clebig Voir le message
    Quelle est la solution ?
    La question est plutôt : que veux-tu faire exactement ?

    Car appeler la commande "cd" ne sert strictement à rien car cela n'affectera que le programme lancé (donc "cd") et n'aura strictement aucun impact sur le programme appelant (donc ton programme Java)

    a++

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 87
    Points : 89
    Points
    89
    Par défaut
    Je veux me mettre dans le répertoire du programme puis le lancer.

    cd /path/du/prog
    puis ./prog

    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     proc = Runtime.getRuntime().exec("cd /"+path+" && ./prog")

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par clebig Voir le message
    Je veux me mettre dans le répertoire du programme puis le lancer.

    cd /path/du/prog
    puis ./prog
    Ben les méthodes exec() de la classe Runtime permettent de spécifier le répertoire de travail du programme appelé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("prog", null, new File("/path/du/prog"));
    a++

    PS : Attention à bien gérer les flux du process (voir le forum et le site pour plus d'info)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 87
    Points : 89
    Points
    89
    Par défaut
    Oui je sais qu'il vaut mieux threader le bouzin. Merci pour ta réponse rapide.

    Clément.

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

Discussions similaires

  1. Process : exécution de commande system
    Par Choupinou dans le forum Langage
    Réponses: 4
    Dernier message: 23/04/2007, 10h52
  2. Problème d'exécution de commande dos
    Par Milowen dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2006, 14h13
  3. [VB]Problème d'exécution d'une commande dos...
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 17/02/2006, 12h28
  4. [ debutant ] exécution commande system() en click JButton
    Par ganjaman dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 18/11/2005, 18h59
  5. Réponses: 5
    Dernier message: 19/04/2005, 08h50

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