Java process builder没有';t使用wmic打印控制台输出

Java process builder没有';t使用wmic打印控制台输出,java,command-line,cmd,Java,Command Line,Cmd,我曾尝试使用process builder打印chrome版本,当我在windows命令提示符下直接执行wmic命令时,这与命令提示符配合良好,process builder则不适用 String path= "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"; String[] cmd = { "CMD", "/C", "wmic datafile where name="+path+" get Vers

我曾尝试使用process builder打印chrome版本,当我在windows命令提示符下直接执行wmic命令时,这与命令提示符配合良好,process builder则不适用

String path= "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe";
    String[] cmd = { "CMD", "/C", "wmic datafile where name="+path+" get Version /value" };
    ProcessBuilder probuilder = new ProcessBuilder(cmd);
    Thread.sleep(5000);
    Process p = probuilder.start();
    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String readline;
    int i = 0;
    while ((readline = reader.readLine()) != null) {
        System.out.println(++i + " " + readline);
    }
}
预期的

它必须打印以下输出:版本=55.0.2883.87

建议一些解决方案

尝试

 String[] cmd = { "CMD", "/C", "wmic datafile where \"name='"+path+"'\" get Version /value" };
您需要引用如下路径:

 "name='C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'"
我认为,即使您不使用cmd也可以直接执行
wmic

编辑整个代码(wmic路径中也需要双斜杠):


试过了。。不走运。它没有打印出来。你还有别的解决办法吗?它是空的output@user2459816-wmic路径还需要双斜线。目前,您正在使用单斜杠。检查我的更新。
Runtime rt = Runtime.getRuntime();
String path= "C:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe";



Process p2=Runtime.getRuntime().exec("cmd /C wmic datafile where 'name=\""+path+"\"'  get Version ");


BufferedReader reader = new BufferedReader(new InputStreamReader(p2.getInputStream()));
BufferedReader stdError = new BufferedReader(new 
         InputStreamReader(p2.getErrorStream()));

String readline;
System.out.println("Output:\n");
while ((readline = reader.readLine()) != null) {
    System.out.println(readline);
}

System.out.println("Errors:\n");
while ((readline = stdError.readLine()) != null) {
    System.err.println(readline);
}