Аргументы построителя процессов - PullRequest
0 голосов
/ 11 июня 2018
final String commands[] =  {"arp", "-n", "|" ,"grep", "98:5d:ad:3d:36:ef", "|", "awk '", "{print $1}", "'"};
ProcessBuilder pb = new ProcessBuilder(commands); 

Я хотел бы получить IP, учитывая MAC-АДРЕС.
Когда я вставляю эту команду в терминал (Ubuntu 16.04), она работает.
Но это не работает, когда я использую его в JAVA.

Что я делаю не так?

Это работает только тогда, когда я запускаю его так:

final String commands[] =  {"arp", "-n"};
ProcessBuilder pb = new ProcessBuilder(commands); 

1 Ответ

0 голосов
/ 12 июня 2018

Вам нужно вызвать "sh" и передать этой программе свою команду.Попробуйте:

ProcessBuilder b = new ProcessBuilder( "/bin/sh", "-c",
               "arp -n | grep 98:5d:ad:3d:36:ef | awk '{print $1}'" );
...