Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1131 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] Récupérer le résultat d'une commande linux?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] Récupérer le résultat d'une commande linux?

n°1050461
Aesthetics
Posté le 18-04-2005 à 10:06:06  profilanswer
 

Bonjour,
 
voilà après avoir utiliser la méthode
 
Runtime.getRuntime()
 
j'aimerai savoir s'il est possible de récupérer ce que retourne la console.
 
Par exemple si je fais un useradd et qu'il existe déjà puis-je le savoir dans le programme java?
 
merci

mood
Publicité
Posté le 18-04-2005 à 10:06:06  profilanswer
 

n°1050500
tuxbleu
renie ses origines
Posté le 18-04-2005 à 11:10:25  profilanswer
 

M'interesse ca !
 
PS : On peut executer une commande systeme depuis un prog Java ? Suis assez surpris ! Et puis niveau portabilité là...

n°1050506
Aesthetics
Posté le 18-04-2005 à 11:20:39  profilanswer
 

pour l'exécution oui on peut via le Runtime.getRuntime().exec(lacommande);
 

n°1050536
tuxbleu
renie ses origines
Posté le 18-04-2005 à 11:34:48  profilanswer
 

Alors moi j'aurais une solution pour toi, mais c'est pas le truc le plus rapide du siècle :
 
Tu redirige la sortie standard de ta commande dans un fichier : ex : useradd toto >> fich.txt
 
puis, dans ton prog java, tu ouvre fich.txt et tu lis le contenu.
 
C'est du bidouillage, mais ca devrais le faire.

n°1050560
the real m​oins moins
Posté le 18-04-2005 à 11:47:32  profilanswer
 

en <1.5 t'as tout ce qu'il faut là : http://java.sun.com/j2se/1.5.0/doc [...] ocess.html
et 1.5 encore plus facile avec http://java.sun.com/j2se/1.5.0/doc [...] ilder.html
 
Ca vous arracherait la gueule d'au minimum jetter un oeil à la doc des classes que vous utilisez avant de crier au secours? [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1050649
Aesthetics
Posté le 18-04-2005 à 13:42:50  profilanswer
 

tuxbleu a écrit :

Alors moi j'aurais une solution pour toi, mais c'est pas le truc le plus rapide du siècle :
 
Tu redirige la sortie standard de ta commande dans un fichier : ex : useradd toto >> fich.txt
 
puis, dans ton prog java, tu ouvre fich.txt et tu lis le contenu.
 
C'est du bidouillage, mais ca devrais le faire.


 
 
j'y avais penser à ça mais trop long :)
 
merci the real moins moins mais j'utilisais pas cette classe moi :)


Message édité par Aesthetics le 18-04-2005 à 13:43:36
n°1050686
tuxbleu
renie ses origines
Posté le 18-04-2005 à 14:15:56  profilanswer
 

Aesthetics a écrit :

j'y avais penser à ça mais trop long :)


 
Long à programmer ou à l'execution ?
 
 
Paske à programmer, c'est vite fait, à l'exécution, ben c clair que ca sera pas en 1/1000 de secondes, mais ca devrait quand même pas excéder 1 seconde ! A toi de voir si c'est à 1 seconde près.
 
Sinon, dans les solutions plus rapides à l'exécution, mais alors la c du vrai bidouillage :
 
Si tu sais rediriger la sortie standard (>> ) vers un argument d'une fonction (ca je c pas faire), tu pourrais te creer un petit programme client qui ouvre une socket sur ton programme et qui lui envoie un String (celui passé en argumet récupéré par >> )
 
Bon, c moche, et je c meme pas si c'est plus rapide que l'écriture dans le fichier (qui est bien plus rapide et simple a mettre en place) .

n°1050692
the real m​oins moins
Posté le 18-04-2005 à 14:17:36  profilanswer
 

Aesthetics a écrit :


merci the real moins moins mais j'utilisais pas cette classe moi :)


et Runtime.exec(...) tu crois que ça te renvoyait quoi ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1050693
the real m​oins moins
Posté le 18-04-2005 à 14:18:42  profilanswer
 

tuxbleu a écrit :

Long à programmer ou à l'execution ?
 
 
Paske à programmer, c'est vite fait, à l'exécution, ben c clair que ca sera pas en 1/1000 de secondes, mais ca devrait quand même pas excéder 1 seconde ! A toi de voir si c'est à 1 seconde près.
 
Sinon, dans les solutions plus rapides à l'exécution, mais alors la c du vrai bidouillage :
 
Si tu sais rediriger la sortie standard (>> ) vers un argument d'une fonction (ca je c pas faire), tu pourrais te creer un petit programme client qui ouvre une socket sur ton programme et qui lui envoie un String (celui passé en argumet récupéré par >> )
 
Bon, c moche, et je c meme pas si c'est plus rapide que l'écriture dans le fichier (qui est bien plus rapide et simple a mettre en place) .


non seulement c'est moche, completement foireux (spaskoi si t'es en multithread, ou si on lance plusieurs instance de ton appli), et y'a des solutions + simple et + propres en std, cfr la javadoc ...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1050697
tuxbleu
renie ses origines
Posté le 18-04-2005 à 14:20:59  profilanswer
 

the real moins moins a écrit :

non seulement c'est moche, completement foireux (spaskoi si t'es en multithread, ou si on lance plusieurs instance de ton appli), et y'a des solutions + simple et + propres en std, cfr la javadoc ...


 
Foireux, c'est sur !
Mais bon, il cherche des soluces, et pour le moment, il a pas grand chose. Alors si je peux lui donner une ou 2 idées...


Message édité par tuxbleu le 18-04-2005 à 16:12:13
mood
Publicité
Posté le 18-04-2005 à 14:20:59  profilanswer
 

n°1050702
the real m​oins moins
Posté le 18-04-2005 à 14:27:12  profilanswer
 

euh, tu sais lire? [:mlc]
j'ai posté les liens de la javadoc, qui n'est autre que la doc des classes utilisées quand on fait un Runtime.exec(...) [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1050922
tuxbleu
renie ses origines
Posté le 18-04-2005 à 16:14:44  profilanswer
 

the real moins moins a écrit :

euh, tu sais lire? [:mlc]
j'ai posté les liens de la javadoc, qui n'est autre que la doc des classes utilisées quand on fait un Runtime.exec(...) [:mlc]


 
 :??: Ben il a dit qu'il voulais pas utiliser les classes de ton lien, alors j'essais juste de donner une ou deux idées (plus ou moins foireuses certe ! ), c'est tout.
 
Faut pas se facher.

n°1050945
sebi
Posté le 18-04-2005 à 16:26:26  profilanswer
 

tuxbleu a écrit :

:??: Ben il a dit qu'il voulais pas utiliser les classes de ton lien, alors j'essais juste de donner une ou deux idées (plus ou moins foireuses certe ! ), c'est tout.
 
Faut pas se facher.


 
nuance, il croyait qu'il utilisait pas cette classe alors que oui
 

n°1051086
sircam
I Like Trains
Posté le 18-04-2005 à 18:02:38  profilanswer
 

Je ne sais pas si c'est tjs d'actualité avec 1.5, mais j'avais fait des tests génériques sur l'exécution de processes depuis java, et ça c'est révélé complètement merdique.
 
Dans certains cas particuliers, il était _obligatoire_ de récupérer le contenu de la console pour éviter que le processus ne se bloque...
 
C'était sous XP mais je ne pense pas que ça change fondamentalement quoique ce soit.
 
Si par malheur, tu lances un shell script (ou à tout le moins un batch sous Win selon mes tests) qui lui-même se charge de lancer un autre process (p.e. en ayant préalablement changé certaines variables), je garantis de mauvaises surprises.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] Récupérer le résultat d'une commande linux?

 

Sujets relatifs
Quelle est l'erreur java script sur ma page ?Exercice Java
Récupérer la sortie standart dans un bufferSun Java Studio Creator, c'est bien ?
fermer un programme par l'invite de commande ms-dos ?Récuperer les variables d'environnement du Shell executant la JVM
récupérer les parametre d'un table MySQL avec VBrécupérer les parametre d'un table MySQL avec VB
[JAVA]Pb retour variable... [Résolu][JAVA] pb de viewport
Plus de sujets relatifs à : [JAVA] Récupérer le résultat d'une commande linux?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR