linux shell脚本exec(wget)在java中

时间:2017-01-11 01:56:18

标签: java linux shell

我在java中制作服务器监控应用程序。

我执行shell脚本(wget --no-cache -t 1 -T 1000 --spider ServerURL 2>& 1 | grep'HTTP')

我获得了结果

但是在java exec shell脚本中..

我没有获得结果......

源代码

String command = "wget --no-cache -t 1 -T 1000 --spider " + monitering_url +" 2>&1 | grep 'HTTP'";
shellCmd(command);
public static void shellCmd(String command) throws Exception {
          Runtime runtime = Runtime.getRuntime();
          Process process = runtime.exec(command);
                    //Thread.sleep(5000);
          InputStream is = process.getInputStream();
          InputStreamReader isr = new InputStreamReader(is);
          BufferedReader br = new BufferedReader(isr);
          String line;
          while((line = br.readLine()) != null) {
              System.out.println(line);
          }
      }

monitering_url = serverURL

我想要结果打印......

帮助我!!

1 个答案:

答案 0 :(得分:1)

您的命令是一个shell脚本,必须传递给shell进行解释:

Process process = runtime.exec(new String[] {"/bin/sh", "-c", command});

注意使用数组将参数传递给shell进程。如果没有它,命令字符串将在传递给解释器之前被标记化,这不是你想要的。