gpt4 book ai didi

java - 进程生成器不使用 wmic 打印控制台输出

转载 作者:行者123 更新时间:2023-11-30 06:57:13 27 4
gpt4 key购买 nike

我试图使用进程生成器打印 chrome 的版本,当我直接在 Windows 命令提示符中执行 wmic 命令时,这在命令提示符下工作正常,同样不适用于进程生成器

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);
}
}

预期

它必须打印以下输出:Version=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'"

我想即使你也可以直接执行wmic而不需要cmd。

编辑整个代码被剪断(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);
}

关于java - 进程生成器不使用 wmic 打印控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41569709/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com