【发布时间】:2014-09-16 21:05:32
【问题描述】:
当通过 ProcessBuilder(特别是“GetMac /s”)运行命令行命令时,如果它抛出错误或正常返回,我可以读取错误或它返回的 MAC 地址,但如果它提示用户输入(某些 pc在网络上使用 getmac 时需要密码)进程将挂起等待密码。
这是从命令行运行时该命令的作用:
这是我用于该过程的代码:
package testing;
import java.io.IOException;
class test1 {
public static void main(String[] args){
String hostName = "testpc";
ProcessBuilder builder = new ProcessBuilder("getmac", "/s", hostName, "/nh");
builder.inheritIO();
try {
Process proc = builder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我需要 mac 的原因是为了在局域网上唤醒程序,并希望在检测到任何新的 pc 的 mac 地址时自动获取它们,这样用户就不必手动输入它。所以如果你知道更好的方法来获取远程电脑的 MAC,请告诉我,我会用它来代替。
我意识到 java 可能不是最好的语言,但它是我目前唯一知道的语言,这只是我在工作中休息的一个有趣的小项目。
**编辑:如果它需要密码,我只想忽略那台电脑并终止进程并继续下一台电脑
【问题讨论】: