Salut
Je dois écrire dans un terminal que je cré.
J'ai défini les entrés sorties mais celle ci n'ont pas l'air de marcher.
Voici mon code:
Ici j'ouvre un terminal (ca ca marche)
Process ordre = Runtime.getRuntime().exec ("xterm" );
Ici je défini le buffer qui me permet de lire le terminal
final BufferedInputStream in = new BufferedInputStream (ordre.getInputStream());
final BufferedReader br = new BufferedReader ( new InputStreamReader (in));
idem pour l'écriture
BufferedOutputStream out = new BufferedOutputStream (ordre.getOutputStream());
BufferedWriter br2 = new BufferedWriter ( new OutputStreamWriter(out));
Et là j'éssaye d'écire (desespérément)
br2.write("toto\n" );
Keski va pas la dedans!!!!!!!!!!!
Please help me!!!!!!!
Publicité
Posté le 04-07-2005 à 10:21:38
Taz
bisounours-codeur
Posté le 04-07-2005 à 10:24:41
un terminal, c'est aussi un programme X, tu ne peux pas piper dessus, parce que son stdin/stdout ne correspondent pas à la saisie des commandes et à l'affichage du résultat.
par contre, si tu pipes un shell, ça marchera très bien.
IrishDwarf
Posté le 04-07-2005 à 10:50:44
Je suis pas sur de comprendre (je débute...)
Il suffit que rentre la commande csh (pour un shell dynamique) pour que ca marche?C'est bien ca?
Taz
bisounours-codeur
Posté le 04-07-2005 à 10:58:32
tu veux faire quoi ?
IrishDwarf
Posté le 04-07-2005 à 11:05:52
En fait je veux éxécuter des commandes depuis un prog JAVA. Le but étant que les infos affiché par le terminal soit ensuite mise dans un fichier texte pour etre exploité par la suite.
Rits75
to?be:!be
Posté le 04-07-2005 à 15:13:09
Citation :
Et là j'éssaye d'écire (desespérément)
br2.write("toto\n" );
peut etre un flush()?
br2.flush()
Taz
bisounours-codeur
Posté le 04-07-2005 à 15:19:43
bah besoin de terminal. lance directement la commande
IrishDwarf
Posté le 04-07-2005 à 15:45:08
J'ai essayait de lancer la commande avec le process et runtime, ca marche. Mais je dois acceder à un serveur, j'utilise donc telnet et je dois fournir login et mot de passe. C'est à ce niveau que ca bloque!
Taz
bisounours-codeur
Posté le 04-07-2005 à 15:49:29
n'importe quoi. Fais la connexion telnet en pure java, sans appeler de programme extérieur
IrishDwarf
Posté le 04-07-2005 à 16:25:34
J'ai déjà essayer mais je n'arrive pas à écrire le login. J'ai essayer avec un write mais il veut rien savoir. Au final j'aiun timeout du process!