无法在 Java 中执行 netsh 命令



我正在尝试用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");

修复程序如何做到这一点?

有一个exec重载,您可以将参数作为String数组传递。

实际上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();
    }

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

相关内容

  • 没有找到相关文章

最新更新