首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Unix命令在java中打印Mac的序列号

使用Unix命令在java中打印Mac的序列号
EN

Stack Overflow用户
提问于 2011-04-21 14:31:26
回答 1查看 6.2K关注 0票数 5

我正在尝试打印我的mac电脑的编辑:苹果电脑的序列号在java程序中。我熟悉Unix命令。

代码语言:javascript
复制
ioreg -l | awk '/IOPlatformSerialNumber/ { print $4;}'

它在终端中完成这项任务。

当我尝试的时候

代码语言:javascript
复制
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());

我的序列号没有打印出来。相反,它会打印:

代码语言:javascript
复制
<+-o Root class IORegistryEntry, id 0x100000100, retain 10>  

我认为问题在于terminal.exec()并不打算接受整个命令字符串。java中有没有类似于python的Popen(command, stdout=PIPE, shell=True)中的参数shell = True的东西,可以让我传递整个命令字符串?

EN

回答 1

Stack Overflow用户

发布于 2011-04-21 14:38:58

要通过Java获取MAC地址,可以使用java.net.NetworkInterface

代码语言:javascript
复制
NetworkInterface.getByName("xxx").getHardwareAddress()

如果您不知道网络接口的名称(我假设它在linux上是'eth0‘),您甚至可以使用NetworkInterface.getNetworkInterfaces()遍历所有网络接口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5740390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档