Runtime et commande grep unix

Runtime et commande grep unix - Java - Programmation

Marsh Posté le 10-02-2003 à 15:55:36    

Salut,
 
j'ai quelques problèmes avec l'execution d'une commande grep via un runtime dans un programme java.
 
voilà mon code :
 

Code :
  1. import java.io.*;
  2. class RuntimeTest
  3. { public static void main(String[] args)
  4.   { Runtime rt= Runtime.getRuntime();
  5.     try{
  6.       Process pr= rt.exec(args);
  7.       DataInputStream is= new DataInputStream(pr.getInputStream());
  8.       String res= is.readLine();
  9.       while (res!=null)
  10.       { System.out.println(res);
  11. res= is.readLine();
  12.       }
  13.     }
  14.     catch(IOException ioe) {System.err.println("Error: " + ioe);}
  15.   } // main
  16. } // RuntimeTest


 
Je l'utilise par exemple comme ça :
 

Code :
  1. java RuntimeTest grep -i '^Subject:.*manger' Document.txt


 
De cette manière ça fonctionne.
 
Maintenant je voudrais mettre ma commande directement dans le code sans passer par les arguments:
 

Code :
  1. Process pr= rt.exec("grep -i '^Subject:.*manger' Document.txt" );


 
C'est là que ça ne marche pas... à mon avis il y a un problème d'échappement de caractère avec les simple quotes mais je n'arrive pas à le réssoudre.
 
Des idées ?
 
Merci

Reply

Marsh Posté le 10-02-2003 à 15:55:36   

Reply

Marsh Posté le 10-02-2003 à 17:11:37    

essaye en splittant ton entrée :

Code :
  1. Process pr= rt.exec("grep -i '^Subject:.*manger' Document.txt".split(" " ));


Note : si ça marche, cela ne résoud pas complètement le problème, notamment si tu as des espaces entre tes quotes ... il faut alors bien re-splitter ta chaîne comme il faut

Reply

Marsh Posté le 10-02-2003 à 17:47:02    

merci de ton aide.
 
J'ai essayé le split mais ça ne marche toujours pas. C'est vraiment bizarre, je ne comprend pas... penses tu que ça soit un problème d'échappement de caractères ?
 
merci encore

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed