我正在尝试用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");fix如何做到这一点呢?
发布于 2021-10-09 17:29:44
有一个exec-overload,你可以以String-array的形式传递参数。
实际上,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();
}您无论如何都要这样做,以便与被调用的流程保持同步。
https://stackoverflow.com/questions/26048551
复制相似问题