Un interpreteur de commande SHELL en java

cs_SYL666 Messages postés 25 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 28 juillet 2005 - 27 juil. 2005 à 14:38
cs_SYL666 Messages postés 25 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 28 juillet 2005 - 28 juil. 2005 à 04:38
Bonjour,

Il faudrait que je fasse un genre d interpreteur de commande SHELL en java (Linux).

C est a dire :

l'utilisateur entre une commande

cette commande et execute et l'output et redirige en direct sur l ecran.... Le tout de maniere interactive...

par exemple : si la commande entree est bloquee jusqu a l insertion d
une chaine de caractere (mot de passe par exemple), l utilisateur doit
pouvoir lire l ecran et repondre aux questions (entrer le mot de passe
pour reprendre l exemple precedant).



Je ne suis pas si debutant que ca... je n ai pas besoin d un gros bloc
de code a copier/coller (bien sur, si le coeur vous en dis, ne vous
gene pas! )

J ai juste besoin d indice...

Je suppose qu il faut que je joue avec les entrees/sorties (System.set/in/out/put)

mais je ne vois vraiment pas comment....



Merci



Bonne soiree!

4 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
27 juil. 2005 à 16:23
Hum, c'est malheureusement impossible je crains.

tu peux faire des Runtime.getRuntime().exec("macommande")

mais la commande sera execute dans un thread independant,

sans que tu puisses recuperer l'output...

En reprenant ton exemple de login/mot de passe,

tu te rends compte apres que tu pourrais lancer une routine pour tester des mots de passe!

Bref, dsl pour toi, mais ce n'est pas possible...
0
mouzart Messages postés 161 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 6 novembre 2008 4
27 juil. 2005 à 16:39
slaut
je sais pas si les commandes dont tu parles sont tes commande c'est a dire que c toit qui les traites dans ton prog java, si c est c'est le cas donc c possible de faire ton shell le system.in va t'aider mais tu peut aussi t aider des keylistener qui detecte meme la saisie d'un caractere ... mais si tu lance une commande par exemple qui demande une interarction avec l'utilisateur est dont tu ignore le traitement alors la je pense que c impossible..?j aime bien savoir ce que tu veux exactement pour que je puisse repondre
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
27 juil. 2005 à 16:48
Non, d'apres ce que je lis "output redirige en direct sur l'ecran", ce qui veut dire recuperer la sortie de la commande,

donc impossible... sauf s'il reecrit des commandes bien evidemment et qu'il ne lance pas des exec().
0
cs_SYL666 Messages postés 25 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 04:38
mouzart a dit : "mais si tu lance une commande par exemple qui demande une interarction avec l'utilisateur est dont tu ignore le traitement..."

--> oui c est exactement ca! tres bien decris

mouzart a dit : "...alors la je pense que c impossible"

-->

Donc d apres vous deux c est vraiment impossible...
huhu....

Et en faisant une redirection d'entrer et de sortie directement dans la
commande executant le programme (Si un jour l applis tournera, ca sera
sous linux) :

Runtime.getRuntime().exec("commande redirectionEntree redirectionSortie")



Merci
0