我看到两种可能性:
解析
ioreg -l
使用Scanner的输出。将命令包装在shell脚本中,
exec()
然后执行以下操作:
#!/ bin / shioreg -l | awk'/ IOPlatformSerialNumber / {打印$ 4;}'附录:作为使用的示例
ProcessBuilder,并结合了Paul Cager的有用建议,这是第三个替代方法:
import java.io.BufferedReader;import java.io.InputStreamReader;public class PBTest { public static void main(String[] args) { ProcessBuilder pb = new ProcessBuilder("bash", "-c", "ioreg -l | awk '/IOPlatformSerialNumber/ { print $4;}'"); pb.redirectErrorStream(true); try { Process p = pb.start(); String s; // read from the process's combined stdout & stderr BufferedReader stdout = new BufferedReader( new InputStreamReader(p.getInputStream())); while ((s = stdout.readLine()) != null) { System.out.println(s); } System.out.println("Exit value: " + p.waitFor()); p.getInputStream().close(); p.getOutputStream().close(); p.getErrorStream().close(); } catch (Exception ex) { ex.printStackTrace(); } }}



