我在 jsp 脚本中有一个 execute(String cmd),它从 Runtime 类调用 exec 方法。
它在我调用本地命令时起作用,例如存储在服务器上的 php 脚本。例如:/usr/bin/php /path/to/php/script arg1 arg2
所以我想我的执行命令没问题,因为它正在使用它。
现在,当我尝试调用基于文本的 Web 浏览器 lynx 时,它不起作用。
如果我在终端中调用它,它工作正常: /usr/bin/lynx -dump -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;
}