Я не могу заставить это вернуть ничего, кроме null
для ip.Я, должно быть, что-то упустил в том, как я форматирую операции внутри массива String, пожалуйста, помогите!Кроме того, есть ли лучший SDK для работы с командной строкой в Java? Обновление Для дальнейшего использования, это инстанс EC2, и выполнение InetAddress.getLocalHost () возвращает значение NULL, поэтому я вернулся к командной строке (AWS SDK является своего рода болью просто для детализации)для локального IP-адреса).
// Команда для запуска: /sbin/ifconfig | awk 'NR==2{print$2}' | sed 's/addr://g'
String[] command = new String[] {"/sbin/ifconfig", "awk 'NR==2{print$2}'", "sed 's/addr://g'" };
String ip = runCommand(command);
public static String runCommand(String[] command) {
String ls_str;
Process ls_proc = null;
try {
ls_proc = Runtime.getRuntime().exec(command);
} catch (IOException e1) {
e1.printStackTrace();
}
DataInputStream ls_in = new DataInputStream(ls_proc.getInputStream());
try {
while ((ls_str = ls_in.readLine()) != null) {
return ls_str;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}