进程构建器参数

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 }'" );