进程构建器参数
Process Builder Arguments
final String commands[] = {"arp", "-n", "|" ,"grep", "98:5d:ad:3d:36:ef", "|", "awk '", "{print }", "'"};
ProcessBuilder pb = new ProcessBuilder(commands);
给定 MAC 地址,我想检索 IP。
当我将此命令插入终端 (ubuntu 16.04) 时,它起作用了。
但是当我在 JAVA.
中使用它时它不起作用
我做错了什么?
它只有在我 运行 像这样时才有效:
final String commands[] = {"arp", "-n"};
ProcessBuilder pb = new ProcessBuilder(commands);
您需要调用 "sh" 并将您的管道命令传递给该程序。
尝试:
ProcessBuilder b = new ProcessBuilder( "/bin/sh", "-c",
"arp -n | grep 98:5d:ad:3d:36:ef | awk '{print }'" );
final String commands[] = {"arp", "-n", "|" ,"grep", "98:5d:ad:3d:36:ef", "|", "awk '", "{print }", "'"};
ProcessBuilder pb = new ProcessBuilder(commands);
给定 MAC 地址,我想检索 IP。
当我将此命令插入终端 (ubuntu 16.04) 时,它起作用了。
但是当我在 JAVA.
我做错了什么?
它只有在我 运行 像这样时才有效:
final String commands[] = {"arp", "-n"};
ProcessBuilder pb = new ProcessBuilder(commands);
您需要调用 "sh" 并将您的管道命令传递给该程序。 尝试:
ProcessBuilder b = new ProcessBuilder( "/bin/sh", "-c",
"arp -n | grep 98:5d:ad:3d:36:ef | awk '{print }'" );