Я пытаюсь распечатать серийный номер моего Mac [edit: Apple computer] в программе на Java. Когда я пробую
String command = "ioreg -l | awk '/IOPlatformSerialNumber/ { print $4; }'"
Runtime terminal = Runtime.getRuntime();
String input = new BufferedReader(
new InputStreamReader(
terminal.exec(commands).getInputStream())).readLine();
System.out.println(new BufferedReader(
new InputStreamReader(
terminal.exec(command, args).getInputStream())).readLine());
, мой серийный номер не печатается. Вместо этого он печатает:
<+-o Root class IORegistryEntry, id 0x100000100, retain 10>
Я думаю, проблема в том, что terminal.exec ()
не предназначен для приема всей командной строки. Есть ли в Java что-то похожее на аргумент shell = True
в Popen (command, stdout = PIPE, shell = True)
python, что позволит мне передать всю командную строку?