Ecrire et lire dans un terminal - Java - Programmation
Marsh 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.
Marsh 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?
Marsh 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.
Marsh Posté le 04-07-2005 à 15:13:09
Citation : Et là j'éssaye d'écire (desespérément) |
peut etre un flush()?
br2.flush()
Marsh 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!
Marsh Posté le 04-07-2005 à 15:49:29
n'importe quoi. Fais la connexion telnet en pure java, sans appeler de programme extérieur
Marsh 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!
Marsh Posté le 04-07-2005 à 16:26:27
Taz a écrit : n'importe quoi. Fais la connexion telnet en pure java, sans appeler de programme extérieur |
Il existe des librairies pour t'y aider.
Lancer un process depuis Java, c'est ouvrir la boîte de Pandore.
Marsh Posté le 04-07-2005 à 10:21:38
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!!!!!!!