Interactions avec les "echo" sur terminal UNIX+JAVA - Shell/Batch - Programmation
Marsh Posté le 04-05-2006 à 16:23:31
Tu rediriges tes echos vers un fichier texte voire meme directement dans une page web,
avec les operateurs de redirection > et >>
Code :
|
Marsh Posté le 04-05-2006 à 18:39:36
Merci pour ce conseil... c'est ce que j'avais commencé à faire (redirigé dans un .txt, puis lire ce fichier avec class JAVA en vu d'un affichage...) ce matin ... avant de poser la question
Le truc, c'est que c'est possible sur les quelques script que j'écris... mais il y en a auquel je n'est pas acces, et que j'ai encor moins le droit de modifier (Je suis qu'en stage apres tout ). C'est pour ca que je souhaitais récupérer les stdout d'un terminal.
Voila, merci quand meme de ton soutien PepMat
Si tu as une autre idée... je suis prenneur !
Marsh Posté le 04-05-2006 à 23:45:28
Salut,
getRuntime().exec te renvoit un objet Process qui a des methodes getInput|Output|ErrorStream()
Marsh Posté le 05-05-2006 à 09:32:46
flavio_dev a écrit : Merci pour ce conseil... c'est ce que j'avais commencé à faire (redirigé dans un .txt, puis lire ce fichier avec class JAVA en vu d'un affichage...) ce matin ... avant de poser la question |
Bon méthode de bourrin, mais bon, si ça peut servir :
Tu n'as pas le droit de modifier les batchs que tu lances ?
La solution :
Créer dynamiquement un fichier batch temporaire à partir de ton script de départ
en rajoutant des redirections vers un fichiers quand tu detectes un echo.
Puis lancer ce batch nouvellement créé à partir de l'ancien.
Structure :
Tu as ton script que tu veux lancer : scriptshell.sh
à partir de ton code java tu crées dynamiquement (à l'interieur de ton programme) un autre fichier scriptshell2.sh
auquel tu rajoutes ">> Log.txt" à toutes les lignes ou tu détectes "Echo"
Puis après l'avoir créé, tu le lances (le nouveau : scriptshell2.sh).
Marsh Posté le 08-05-2006 à 14:45:35
chicotruss a écrit : Salut, |
Oui ca j'ai essayé, ca marche... c'est galere, mais ca marche... je metterai le bout de code si cela interrese quelqu'un.
Malheureusement, ca ne convient pas à mon projet... difficile à expliquer pourquoi, je suis dans une architecture très complexe... mais ca ne marche pas... je vais peutetre essayer la solution de PepMat!
Marsh Posté le 09-05-2006 à 15:58:10
Et tout simplement getRuntime.exec("scriptshell.sh>File.txt" ) ?
Marsh Posté le 10-05-2006 à 21:12:22
heu.... pas bête... j'essayerais, mais c'est vrai que ce serait une solution des plus simple... J'ai plus ou moins résolu mon probleme en fait (comme dit ci dessus...). Je n'ai pas pris le code.. je vous l'affiche dès que....j'y pense... ^^. Mon probleme se trouve autre part maintenant... c'est du coté client, avec ma page html (architecture entre page HTML et applet en Java...). Je vous met le lien.
http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
Merci à tous!
Flavio
Marsh Posté le 04-05-2006 à 14:12:00
bonjour à tous.
Voila ma p'tite question :
Je travaille dans un environnement UNIX, et je lance des scripts à partir de methodes JAVA ( getRuntime.exec("scriptshell.sh" ); ). Sauf que quand on lance un script.sh, si on s'applique à en faire un assez facil à utiliser, on se debrouille touojours pour mettre des echo "demarage du script", des echo "Erreur" à quelques ligne, pour la comprehension ou pour savoir dans quel boucle on entre etc...Ces lignes s'affichent donc sur l'écran du terminal. Le probleme, c'est que quand on execute un script avec Java, c'est lignes sont transparentes... je veux dire par là qu'elle ne s'affichent pas. Si une erreur survient, on a pas le message fourni par echo...
et bien ce que je voudrais, c'est justement récupérer ces lignes qui apparaissent en sortie écran de termial, pour les afficher dans un autre environnement (dans une page HTML en l'occurence ici...).
Comment récupérer les echo lancer dans un script ?
La récupération du exit.value() ne fonctionne pas, pour ceux qui allaient me dire cette solution qui consiste à renvoyer un code en sortie (un int)lorsqu'une erreur se produit.
Merci d'avance
Flavio