Печать серийного номера моего Mac в java с помощью команд Unix

Я пытаюсь распечатать серийный номер моего 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, что позволит мне передать всю командную строку?

5
задан skaffman 21 April 2011 в 10:01
поделиться