Procédure Exec de Runtime

Procédure Exec de Runtime - Java - Programmation

Marsh Posté le 15-03-2004 à 17:00:39    

Bonjour les zamis !
 
J'utilise le code suivant :
 
String ls_str;
 
Process ls_proc = Runtime.getRuntime().exec("/bin/ls -aFl" );
DataInputStream ls_in = new DataInputStream(            ls_proc.getInputStream());
try {
 while ((ls_str = ls_in.readLine()) != null)  
{        System.out.println(ls_str);
}
 
   } catch (IOException e)  
{
 System.exit(0);
}
 
Ce code est censé me permettre d 'éxecuter certaines requestes system.
 
Celà fonctionne avec la commande /bin/ls ( sous unix hein :) )
mais une commande du stype ldapmodify nada....
 
 
une idée ?  :jap:  
 
Smoltok
 


Message édité par Smoltok le 15-03-2004 à 17:02:01
Reply

Marsh Posté le 15-03-2004 à 17:00:39   

Reply

Marsh Posté le 15-03-2004 à 17:01:02    

Et ?

Reply

Marsh Posté le 15-03-2004 à 17:01:40    

Smoltok a écrit :

Bonjour les zamis !
 
J'utilise le code suivant :

cool [:youpi] [:zaib3k]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-03-2004 à 17:02:46    


 
Vous etes trop rapide lesgars ...
la souris a cliqué toute seule sur le bouton entrée  :lol:  
 
jai du édité rapidement !!

Reply

Marsh Posté le 15-03-2004 à 17:03:04    

nada ? Qu'est-ce-que tu as comme retour quand tu lances ta commande ldapmodify ?

Reply

Marsh Posté le 15-03-2004 à 17:03:13    


 
vi vi je sais  :heink:

Reply

Marsh Posté le 15-03-2004 à 17:03:49    

ben commence déjà par mater ce que ton exception dit au lieu de sortir de ton prog comme un bourin [:kiki]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-03-2004 à 17:05:18    

machinbidule1974 a écrit :

nada ? Qu'est-ce-que tu as comme retour quand tu lances ta commande ldapmodify ?


 
retour du type  
entry cn=.... modified.
 
j'aimerais aussi utiliser cette fonction ( exec ) pour me générer un mot de passe crypté par la commance /usr/sbin/slappasswd genre slappasswd -h {'MD5'} -s toto
mais là je sèche  :sweat:

Reply

Marsh Posté le 15-03-2004 à 17:06:06    

[:marc] et pourquoi pas le faire par java security ?


---------------
IVG en france
Reply

Marsh Posté le 15-03-2004 à 17:06:46    

the real moins moins a écrit :

ben commence déjà par mater ce que ton exception dit au lieu de sortir de ton prog comme un bourin [:kiki]


 
le bourrin bosse dessus depuis toute une journée et en a marre
et l'erreur est du style : ah bah ya pas d'erreur...
d'ou mon incapacité à la nommer...  :cry:


Message édité par Smoltok le 15-03-2004 à 17:08:47
Reply

Marsh Posté le 15-03-2004 à 17:06:46   

Reply

Marsh Posté le 15-03-2004 à 17:07:51    

uriel a écrit :

[:marc] et pourquoi pas le faire par java security ?


 
j'y ai pensé mais  :heink:  
 
mon mot de passe MD5 générér par java.security est incimpatible avec mon attribut userPassword dans mon LDAP ( openLDAP V3 ).

Reply

Marsh Posté le 15-03-2004 à 17:08:42    

Smoltok a écrit :


 
le bouyrrin bosse dessus depuis toute une journée et en a marre
et l'erreur est du style : ah bah ya pas d'erreur...
d'ou mon incapacité à la nommer...  :cry:  

catch (IOException ex) { System.exit(0); }
 
tu m'etonnes qu'y'a pas d'erreur  [:zaib3k]  
 
ex.printStackTrace();


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-03-2004 à 17:10:06    

the real moins moins a écrit :

catch (IOException ex) { System.exit(0); }
 
tu m'etonnes qu'y'a pas d'erreur  [:zaib3k]  
 
ex.printStackTrace();


 
oui oui ok ok j'ai tappé rapidement un morceau de code pour le forum MEA CULPA  :jap:  
 
mais rien ne passe a travers mon try catch pour information

Reply

Marsh Posté le 15-03-2004 à 17:11:21    

Smoltok a écrit :


j'y ai pensé mais  :heink:  
mon mot de passe MD5 générér par java.security est incimpatible avec mon attribut userPassword dans mon LDAP ( openLDAP V3 ).


 
j'ai eu un probleme semblable, mais tu peux adapter pour obtenir la même chose, sans doute un probleme de nombres de caracteres


---------------
IVG en france
Reply

Marsh Posté le 15-03-2004 à 17:12:16    

Est-ce-que ton erreur ne vient pas du fait que la commande ldapmodify n'est pas trouvée ? Si tu essaies de donner le chemin absolu de ta commande ldapmodify, ça donne quoi ?

Reply

Marsh Posté le 15-03-2004 à 17:12:43    

uriel a écrit :


 
j'ai eu un probleme semblable, mais tu peux adapter pour obtenir la même chose, sans doute un probleme de nombres de caracteres  


 
pourrais tu expliciter stp ?

Reply

Marsh Posté le 15-03-2004 à 17:14:18    

machinbidule1974 a écrit :

Est-ce-que ton erreur ne vient pas du fait que la commande ldapmodify n'est pas trouvée ? Si tu essaies de donner le chemin absolu de ta commande ldapmodify, ça donne quoi ?


 
au début je l'utilisais en relatif mais je me suis posés la question et jai tout mi en absolu apres avoir vu quelques exemples sur le net mais aucun changement :/

Reply

Marsh Posté le 15-03-2004 à 17:16:46    

Mais tu n'as vraiment aucune erreur ? C'est dingue ça ! Aucun symptôme qui pourrait nous aiguiller ???

Reply

Marsh Posté le 15-03-2004 à 17:16:56    

Voilà un exemple plus concret de mon code  
 
String[] params = {"/usr/sbin/slappasswd" , "-h",  "'{MD5}'",  "-s", "koukou"};
 
String ls_str;
     
    Process ls_proc = Runtime.getRuntime().exec(params);
     
DataInputStream ls_in = new DataInputStream(ls_proc.getInputStream());
     
try
{
while ((ls_str = ls_in.readLine()) != null )
{
NSLog.out.appendln(ls_str);
}
}
catch (Exception e)
{
NSLog.out.appendln(e.toString());
}

Reply

Marsh Posté le 15-03-2004 à 17:18:01    

machinbidule1974 a écrit :

Mais tu n'as vraiment aucune erreur ? C'est dingue ça ! Aucun symptôme qui pourrait nous aiguiller ???


 
oui c dingue ca...il ne me dit rien du tout ..si au moins y avait une erreur de type IO ce serait déjà moins affreux...
ignorance..ignorance...
 
je dois mal my prendre alors...autre suggestion peut etre ?


Message édité par Smoltok le 15-03-2004 à 17:19:04
Reply

Marsh Posté le 15-03-2004 à 17:18:47    

et le return code?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-03-2004 à 17:19:14    

et pour l'InputStream, pq tu passes par un DATAinputStream ? :heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-03-2004 à 17:19:44    

Mais c'est pas l'OutputStream que tu devrais récupérer plutôt ? C'est bien la sortie de ta commande que tu veux afficher ?

Reply

Marsh Posté le 15-03-2004 à 17:20:30    

oui en plus, bien vu :D
 
pour le return code: http://java.sun.com/j2se/1.4.2/doc [...] xitValue()


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-03-2004 à 17:21:38    


au risque de me faire lapider...rien...
donc à mon avis il n'execute pas la commande..pourtant elle est là,
dans le bon chemin absolu...pas d'histoire de droit spécifique...

Reply

Marsh Posté le 15-03-2004 à 17:23:09    

Il y a qqchose qui m'échappe... Je dois me tromper mais la sortie devrait logiquement être récupérée dans l'OutputStream de ton process (logique au niveau sémantique). Or un OutputStream ne permet de faire que des opérations de type write()...  :heink:


Message édité par machinbidule1974 le 15-03-2004 à 17:23:29
Reply

Marsh Posté le 15-03-2004 à 17:23:26    

Smoltok a écrit :


pourrais tu expliciter stp ?  


 
oula, ca date un peu, mais je crois que j'etais passé par un tableau de bytes :/
parce que je devais faire une comparaison avec une base de données qui avait été peuplé par un script Perl et le md5 obtenu etait different [:marc]


---------------
IVG en france
Reply

Marsh Posté le 15-03-2004 à 17:25:17    

machinbidule1974 a écrit :

Il y a qqchose qui m'échappe... Je dois me tromper mais la sortie devrait logiquement être récupérée dans l'OutputStream de ton process (logique au niveau sémantique). Or un OutputStream ne permet de faire que des opérations de type write()...  :heink:  

ha oui, en effet:
http://java.sun.com/j2se/1.4.2/doc [...] utStream()
il a donc raison sur ce coup là ;)
 
par contre je vois tjs pas pourquoi un DataInputStream


Message édité par the real moins moins le 15-03-2004 à 17:26:30

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-03-2004 à 17:29:14    

Smoltok a écrit :


au risque de me faire lapider...rien...
donc à mon avis il n'execute pas la commande..pourtant elle est là,
dans le bon chemin absolu...pas d'histoire de droit spécifique...


 
[:antp]
 
Désolé mais il me fait marrer ce smiley :D

Reply

Marsh Posté le 15-03-2004 à 17:34:13    

machinbidule1974 a écrit :


 
[:antp]
 
Désolé mais il me fait marrer ce smiley :D


 
ca a au moins le mérite de me faire rire  :hello:

Reply

Marsh Posté le 15-03-2004 à 17:41:19    

bon voivci un meilleur bout de code dans ce là ( cf post DataInput ) il est vrai que j'utilisais une methode deprecated...
 
Process ls_proc2 = Runtime.getRuntime().exec(params2);
BufferedReader d = new BufferedReader(new InputStreamReader(ls_proc2.getInputStream()));
   
try
{
while ((ls_str2 = d.readLine()) != null )
  {
  NSLog.out.appendln(ls_str2);
  }
}

Reply

Marsh Posté le 15-03-2004 à 17:56:25    

:bounce:  
 
UN petit up pour dire que si je ne met qu 'un argument dans ma fonction celà marche...
genre slappasswd -s koukou
mais jai besoin de pouvoir mettre au moins mon autre argument...
 
bon affaire a suivre là je rentre chez moi
 
++

Reply

Marsh Posté le 15-03-2004 à 18:08:28    

essaie String[] params = {"/usr/sbin/slappasswd" , "-h '{MD5}' -s koukou"}; [:spamafote]


Message édité par the real moins moins le 15-03-2004 à 18:09:39

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 16-03-2004 à 08:20:44    

snif...déjà essayer....
bon je continue mon investigation ! merci à ceux qui ont bien voulu m'aider
et je up le post en même temps !

Reply

Marsh Posté le 16-03-2004 à 09:28:13    

Je crois avoir trouvé un indice ....
il n'aime pas les ' dans les arguments....
 
comment faire autrement ?

Reply

Marsh Posté le 16-03-2004 à 09:55:07    

donc pour résumer enfin si quelqu'un m'écoute encore :
en ligne de commande celà fonctionne :
/bin/ls -a "-F" -s
mais exécuter par la commande exec de runtime celà bug :/
or j'ai besoin de ces guillemets dans ma commande slappasswd ....:/

Reply

Marsh Posté le 16-03-2004 à 10:38:04    

Dicton : "Quand la montagne est trop grande, contourne là !"
 
En bref, j'ai fait un script qui prend un seul paramètre et plus besoin de spécifier l'argument nécessaire puisqu'inclus dans le script.
 
Merci à mon administratice système préférée :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed