【问题标题】:Can't Execute netsh Command in Java无法在 Java 中执行 netsh 命令
【发布时间】:2014-11-20 19:33:38
【问题描述】:

我正在尝试在 Java 中执行 netsh 命令。我想获得可用的网络。我可以在 cmd 上运行这段代码:

"netsh wlan show network mode=Bssid  > D:\\output.txt"

它有效。当我尝试在 Java 中运行此代码时,它不起作用。

 Process networks= Runtime.getRuntime().exec("netsh wlan show network mode=Bssid  > D:\\output.txt");

如何解决这个问题?

【问题讨论】:

  • 不起作用如何
  • 什么也没发生,它不会创建 txt 但在 cmd 上工作正常
  • 尝试以管理员身份执行此命令。前任。以管理员身份打开 netbeans 或 eclipse(如果您使用这些工具)。

标签: java command execute netsh


【解决方案1】:

有一个执行重载,您可以在其中将参数作为字符串数组传递。

其实 netsh.exe 无法处理。

解决方案是在命令行解释器中执行 netsh,比如

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/Cnetsh wlan show network mode=Bssid  > D:\\output.txt"});

无论如何,命令行解释器是处理输出过滤器的唯一方法´>´

否则,您可能会省略写入文件并立即以字符串列表的形式访问输出

    BufferedReader input = new BufferedReader(new InputStreamReader(networks.getInputStream()));
    List<String> res = new ArrayList<String>();
    String line;
    try
    {
        while ((line = input.readLine()) != null)
        {
            res.add(line);
        }

    }
    catch (Exception x)
    {
        x.printStackTrace();
    }

无论如何,您都会这样做以与被调用的进程同步。

【讨论】:

    猜你喜欢
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多