gpt4 book ai didi

java - java 中的 linux shell 脚本 exec(wget)

转载 作者:太空宇宙 更新时间:2023-11-04 10:25:58 24 4
gpt4 key购买 nike

我用 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

我要打印结果...

帮帮我!!

最佳答案

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

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

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

关于java - java 中的 linux shell 脚本 exec(wget),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41581526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com