我正在尝试在Java程序中打印Mac的[编辑:Apple计算机]序列号。我熟悉Unix命令
ioreg -l | awk '/IOPlatformSerialNumber/ { print $4;}'
在终端中完成此任务。
当我尝试
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 = Truepython中的参数的东西Popen(command, stdout=PIPE, shell=True),可以让我传递整个命令字符串?
LEATH
慕盖茨4494581
相关分类