我在運行時類中調用exec方法的jsp腳本中有一個execute(String cmd)。從jsp腳本調用lynx
它可以在我調用本地命令時使用,如存儲在服務器上的php腳本。例如:/ usr/bin/php/path/to/php/script arg1 arg2
所以我想我的執行命令沒問題,因爲它正在處理這個問題。
現在,當我嘗試調用基於文本的web瀏覽器lynx時,它不起作用。
如果我把它在一個終端,它工作正常: 在/ usr/bin中/猞猁突降-accept_all_cookies「http://www.someurl.net/?arg1=1&arg2=2」
但是,當我把這個從我執行命令,沒有任何反應...
任何想法爲什麼?
這是我的執行方法:
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;
}
嗯好吧,你認爲它會工作,如果我只是刪除緩衝區讀取,只是調用exec方法?因爲我實際上不需要看到結果... 我會看看你發佈的鏈接,謝謝你的幫助! – Piero 2010-05-18 11:48:11
我認爲緩衝可能會導致兩端阻塞,這取決於任何一方的內部實現。這可能是Javadocs「及時」閱讀的意思。我肯定會嘗試擺脫緩衝,甚至可能用'(while in.read()!= -1){}'替換整個事物? – 2010-05-18 11:53:22
它仍然無法正常工作... -/ 我只想調用以下命令:/ usr/bin/lynx -dump -accept_all_cookies'http://www.someurl.net/?arg1=1&arg2=2' 從一個jsp腳本... 爲什麼Java/Jsp總是如此挑剔愚蠢的東西....我永遠不會喜歡它! php規則! :-p – Piero 2010-05-18 12:50:28