java - 如何从 Java 运行 netsh 的 exec?

标签 java runtime.exec

当我直接将其输入cmd.exe时,以下内容工作正常:

netsh wlan connect name="配置文件名称"ssid=XXXXXX

但是,当我尝试从 java 执行此操作时,它不起作用,也不会抛出任何异常。它被默默地忽略:

Runtime.getRuntime().exec("cmd netsh wlan connect name=\"Profile Name\" ssid=XXXXX ") ; ` 

如何改进代码?

最佳答案

首先尝试删除 cmd 参数(您不需要运行此解释器,只需运行 netsh)。

否则可能是由于该命令行中存在空格字符(例如,请注意 SSID 中的空格)。您可能想尝试 Runtime.exec(String[] cmdarray) java.lang.ProcessBuilder而不是单独指定每个参数。

示例:

Runtime.getRuntime().exec(new String[] {"netsh", "wlan", "connect", "name=\"Profile Name\"", "ssid=XXXXX"});

或(完整示例):

ProcessBuilder pb = new ProcessBuilder("netsh", "wlan", "connect",
    "name=\"Profile Name\"", "ssid=XXXXX");
pb.redirectErrorStream(true);
Process process = pb.start();
BufferedReader reader = new BufferedReader(
    new InputStreamReader(process.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}

关于java - 如何从 Java 运行 netsh 的 exec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22998541/

相关文章:

java - PhonecallReceiver 无法在 android studio 上运行?

java - 使用 JSON 发送请求返回错误 405 :Method not allowed

java - 使用 java 恢复 PostgreSQL 数据库

java - 从 Java 运行 exec 命令是否需要 "bash"?

java - 如何从 Java 中查找和终止正在运行的进程?

java - 我似乎无法弄清楚如何修复我的 ksoap2 android 代码中的错误

java - 插入排序...调整以改进?

java - 将 Runtime.exec() 与 String [ ] 一起使用

java - 使用 Runtime.getRuntime().exec() 执行 java 文件

java - 插入带有子项的@OneToMany 关系对象而不在子表中插入父项ID?