J'ai un execute (String cmd) dans un script jsp qui appelle la méthode exec de la classe Runtime.appel lynx à partir du script jsp
Cela fonctionne quand j'appelle une commande locale, comme un script php stocké sur le serveur. Par exemple:/usr/bin/php/chemin/vers/php/script arg1 arg2
Donc, je suppose que ma commande d'exécution est correcte, car elle fonctionne avec cela. Maintenant, lorsque j'essaie d'appeler lynx, le navigateur Web textuel, cela ne fonctionne pas.
Si je l'appelle dans un terminal, il fonctionne très bien: /usr/bin/lynx -dump -accept_all_cookies 'http://www.someurl.net/?arg1=1&arg2=2'
Mais quand j'appelle cela de mon exécuter la commande, rien ne se passe ...
Une idée pourquoi?
Ceci est ma méthode d'exécution:
public String execute(String cmd){
Runtime r = Runtime.getRuntime();
Process p = null;
String res = "";
try {
p = r.exec(cmd);
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
//out.println(res);
while ((line = br.readLine()) != null) {
res += line;
}
p.waitFor();
} catch (Exception e) {
res += e;
}
System.out.println(p.exitValue());
return res;
}
hmm ok, alors pensez-vous que cela fonctionnera si je supprime simplement la lecture de la mémoire tampon et appelle simplement la méthode exec? Parce que je n'ai pas vraiment besoin de voir le résultat ... Je jetterai un oeil sur le lien que vous avez posté de toute façon, merci pour votre aide! – Piero
Je pense que le tampon peut bloquer les deux extrémités, en fonction des implémentations internes de chaque côté. C'est probablement ce que les Javadocs veulent dire par "promptement". Je vais certainement essayer de se débarrasser de la mise en mémoire tampon, peut-être même remplacer le tout avec '(while in.read()! = -1) {}'? –
il ne fonctionne toujours pas ...: -/ tout ce que je veux est d'appeler la commande:/usr/bin/lynx -dump -accept_all_cookies 'http://www.someurl.net/?arg1=1&arg2=2' d'un script jsp ... Pourquoi Java/Jsp est toujours si pointilleux sur des trucs stupides ... Je ne l'aimerai jamais! règles php! :-p – Piero