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

API standards et tierces Java Discussion :

[Process] pb exec sous unix, ne plante pas mais ne fait rien


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2003
    Messages : 13
    Points : 12
    Points
    12
    Par défaut [Process] pb exec sous unix, ne plante pas mais ne fait rien
    Bonjour à tous.

    J'aimerais simplement exécuter une commande externe mais cela bug et je ne comprends pas pourquoi. Je travail sous solaris/SPARC.

    Le but est d'utiliser rrdtool pour récupérer de l'information dans une rrd.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try
    		{
    	 	Runtime rtime= Runtime.getRuntime();
    	 	Process proc = rtime.exec("/opt/csw/bin/rrdtool info /usr/rrd/waste3/fr1.fr.geant.net/so-0_1_0.rrd  >  /home/nico/retrieval.log");
     
    		}
    	    catch (java.io.IOException e) {
    	    	System.out.println("ERREUR");
    	    }

    J'ai essayé aussi avec un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process test = rtime.exec("echo test");
    Mais rien ne va. La compilation se passe sans problème et même l'exécution. Mais le fichier retrieval.log n'est jamais créé.

    J'ai essayé aussi en mettant une requête erronée et là ... ça fonctionne. Enfin je devrais plutot dire que ça retourne une erreur. Mais cela montre que la commande est correctement exécutée.

    Pour conclure je dirais que je ne m'en sorts absolument pas.

    qqn pour me donner u petit coup de pouce ?

    merci d'avance.





    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Eh bien le monde est petit
    Je venais chercher solution a ce probleme moi aussi.

    Alors si quelqu'un à une solution.

    Sache que ca execute bien quelque chose, essaye par exemple de lancer une appli graphique comme emacs ou autre chose et tu verra q ca se lance. Par contre moi j'essaye de faire un

    rtime.exec("ps | grep toto > data.log");

    mais là je n'ai pas de resultat

  3. #3
    Rédacteur
    Avatar de minosis
    Inscrit en
    Février 2003
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 82
    Points : 1 831
    Points
    1 831
    Par défaut
    Salut
    Tu attends quoi comme résultat sur le echo ? Si c'est un affichage dans la console :
    Là tu stockes le résultat du exec() dans la variable "Process test" ....
    Mais, il faut ensuite l'afficher.

    Tient, un bout de code trouvé sur un newsgroup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        try
        {
          Process p=Runtime.getRuntime().exec("/bin/sh");
          OutputStream in=p.getOutputStream();
          in.write(cmd.getBytes());
          in.flush();
          InputStream out=new BufferedInputStream(p.getInputStream());
          byte[] b=new byte[1024];
          int    n=out.read(b);
          for(i=0;i<n;i++) System.out.print((char)b[i]);
     
        }
        catch(Exception ex) { }
    Rédacteur Dotnet / Java / Flash
    http://defaut.developpez.com/

  4. #4
    Membre éclairé

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 657
    Points
    657
    Par défaut
    Et pour le premier cas je ne pense pas qu'une redirection puisse fonctionner. La métode "exec" ne lance pas un shell pour interpréter la commande. Donc idem que pour l'echo, il faut passer par les flux renvoyés par le Process.

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

Discussions similaires

  1. Ligne tronquée sous unix, pas sous windows
    Par dude666 dans le forum AIX
    Réponses: 3
    Dernier message: 27/05/2009, 16h21
  2. Pb jsp sous unix et pas sous win - OU - Pb tomcat
    Par estelle31 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 03/11/2008, 10h28
  3. Réponses: 9
    Dernier message: 14/06/2007, 12h22
  4. execution pas a pas de C sous UNIX
    Par inessita dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 13/03/2007, 10h54
  5. .sh marche sous unix et pas sous linux
    Par Karim.1 dans le forum Linux
    Réponses: 6
    Dernier message: 11/08/2006, 09h18

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