Question OutputStream [JAVA] - Java - Programmation
Marsh Posté le 22-05-2002 à 12:54:17
Peut-être me trompe-je mais je pense plutôt qu'il faut faire :
BufferedInputStream input = new BufferedInputStream(Runtime.getRuntime().exec("commande" ).getInputStream());
et après tu te démerdes pour afficher le contenu de input.
Car si tu lis la javadoc tu vois que :
getInputStream() returns the input stream connected to the normal output of the subprocess.
Marsh Posté le 22-05-2002 à 12:59:59
El Scorcho a écrit a écrit : Peut-être me trompe-je mais je pense plutôt qu'il faut faire : BufferedInputStream input = new BufferedInputStream(Runtime.getRuntime().exec("commande" ).getInputStream()); et après tu te démerdes pour afficher le contenu de input. Car si tu lis la javadoc tu vois que : getInputStream() returns the input stream connected to the normal output of the subprocess. |
En fait j'avais déjà essayé mais je ne recevais toujours rien en résultat ...
Marsh Posté le 22-05-2002 à 13:00:34
Plus précisemment tu fais :
InputStream in = Runtime.getRuntime().exec("commande" ).getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
et après des br.readLine() tant que différent de null...
Marsh Posté le 22-05-2002 à 13:21:06
Le tutorial de sun est bien fait mais en anglais :
http://java.sun.com/docs/books/tut [...] rview.html
sinon va voir sur www.developpez.com tu devras trouver ca...
Marsh Posté le 22-05-2002 à 13:23:16
El Scorcho a écrit a écrit : Plus précisemment tu fais : InputStream in = Runtime.getRuntime().exec("commande" ).getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); et après des br.readLine() tant que différent de null... |
En fait c'est ce que j'avais fait .. mais bizarrement rien n'est sorti sur la fenêtre DOS alors que si je tape ma commande DOS, j'ai bien un retour d'info sur la fenêtre .... mais je vais reessayer, j'ai ptete oublié un truc.
Merci à tout le monde en tout cas
Marsh Posté le 22-05-2002 à 13:29:37
Je viens de tester pour voir si j'avais pas dit de connerie et effectivement ça ne marche pas avec les commandes dos et même certains autres progs...
Enfin pour les commandes dos telles que "dir" je crois que c'est normal que ça ne marche pas...
c'est quoi la commande que tu lances ?
Marsh Posté le 22-05-2002 à 13:36:17
El Scorcho a écrit a écrit : Je viens de tester pour voir si j'avais pas dit de connerie et effectivement ça ne marche pas avec les commandes dos et même certains autres progs... Enfin pour les commandes dos telles que "dir" je crois que c'est normal que ça ne marche pas... c'est quoi la commande que tu lances ? |
En fait, le but est de lancer certains progs Unix (notamment gzip). Mais comme je suis pas sous Unix là et que je ne peux aps le tester pour l'instant, je testais par des programmes sous DOS (pas dir ou autres, j'ai vu que s'il n'y avait pas d'extension d'execution comme EXE par exemple ca ne marchait pas) comme JAR. En le lancant tout seul, il nous retourne tous les arguments possibles. Je voulais tenter de recup ce qu'il me renvoyait pour les reafficher (tous les arguments en somme).
[jfdsdjhfuetppo]--Message édité par wlitw le 22-05-2002 à 13:39:29--[/jfdsdjhfuetppo]
Marsh Posté le 22-05-2002 à 14:22:27
tu as vu ca ?
http://java.sun.com/j2se/1.3/docs/ [...] mmary.html
Marsh Posté le 22-05-2002 à 15:53:40
benou a écrit a écrit : tu as vu ca ? http://java.sun.com/j2se/1.3/docs/ [...] mmary.html |
C'est parfait ça marche nickel merci
Par contre j'aurais quand même bien aimé savoir comment faire pour récup les données qui allaient être affichées sous DOS, juste au cas où
Marsh Posté le 22-05-2002 à 16:14:35
Et si tu essayais de passer par un Process ?
genre :
Process proc=Runtime.getRuntime().exec("commande" );
Et ensuite dans le proc tu peux récupérer l'OutputStream.
Marsh Posté le 22-05-2002 à 16:20:41
wlitw a écrit a écrit : C'est parfait ça marche nickel merci Par contre j'aurais quand même bien aimé savoir comment faire pour récup les données qui allaient être affichées sous DOS, juste au cas où |
en fait il y a deux flux a lire: standard output et error output.
Dans le cas de jar, ca doit sortir sur error output...
Renaud
Marsh Posté le 22-05-2002 à 16:29:28
- Renaud - a écrit a écrit : en fait il y a deux flux a lire: standard output et error output. Dans le cas de jar, ca doit sortir sur error output... Renaud |
Ok merci je vais regarder
Marsh Posté le 22-05-2002 à 16:30:08
DrKoidNeuf a écrit a écrit : Et si tu essayais de passer par un Process ? genre : Process proc=Runtime.getRuntime().exec("commande" ); Et ensuite dans le proc tu peux récupérer l'OutputStream. |
En fait j'arrivais à le récupérer mais je n'arrivais pas ensuite à le faire afficher sur la fenêtre DOS.
Marsh Posté le 22-05-2002 à 16:38:11
- Renaud - a écrit a écrit : en fait il y a deux flux a lire: standard output et error output. Dans le cas de jar, ca doit sortir sur error output... Renaud |
Bien vu, c'est ça.
Marsh Posté le 22-05-2002 à 12:26:29
Voilà j'ai un ptit problème avec les flux (à vrai dire j'ai du mal à piger, si quelqu'un a un site où sont bien expliqués tous les flux Input et Ouput différents, je veux bien ).
Voilà je lance une application DOS externe depuis mon appli Java (avec Runtime.getRuntime().exec("commande" )). Cette commande DOS doit normalement me renvoyer un résultat. Quand je l'exécute directement du DOS, ça marche. Quand je passe par mon appli Java, ça marche mais aucun affichage ne se produit sous ma fenêtre DOS. On m'a dit qu'en fait c'était stocké dans la JVM et qu'il fallait que je le récupère sous forme d'OutputStream, ce que j'ai donc fait :
OutputStream os = Runtime.getRuntime().exec("commande" ).getOutputStream();
Seulement maintenant, je voudrais affiché tout ça dans ma fenêtre DOS avec un System.out.println()
Quelqu'un pourrait-il m'aider pour me dire comment faire pour récuperer les données dans mon OutputStream et comment les faire afficher ???
Merci d'avance !
---------------
Steam : wlitw77 - GoG : wlitw