java执行命令提示符问题
public class CmdExec {
public static void main(String argv[]) {
try {
Runtime rt = Runtime.getRuntime();
StreamWrapper error, output;
String TEMP = "/output:C:\\InstallList.txt product get name,version";
System.out.println(TEMP);
CmdExec rte = new CmdExec();
Process proc = rt.exec("wmic");
proc = rt.exec(TEMP);
error = rte.getStreamWrapper(proc.getErrorStream(), "ERROR");
output = rte.getStreamWrapper(proc.getInputStream(), "OUTPUT");
int exitVal = 0;
error.start();
output.start();
error.join(3000);
output.join(3000);
exitVal = proc.waitFor();
System.out.println("Output: "+output.message+"\nError: "+error.message);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
获取异常:
java.io.IOException:CreateProcess:\输出:C:\InstallList.txt产品获取名称,版本错误= 123 在 java.lang.ProcessImpl.create(本机方法) 在 java.lang.ProcessImpl.(来源未知) 在 java.lang.ProcessImpl.start(来源未知) 在 java.lang.ProcessBuilder.start(来源未知) 在 java.lang.Runtime.exec(来源未知) 在 java.lang.Runtime.exec(来源未知) 在 java.lang.Runtime.exec(来源未知) 在 CmdExec.main(CmdExec.java:20)
public class CmdExec {
public static void main(String argv[]) {
try {
Runtime rt = Runtime.getRuntime();
StreamWrapper error, output;
String TEMP = "/output:C:\\InstallList.txt product get name,version";
System.out.println(TEMP);
CmdExec rte = new CmdExec();
Process proc = rt.exec("wmic");
proc = rt.exec(TEMP);
error = rte.getStreamWrapper(proc.getErrorStream(), "ERROR");
output = rte.getStreamWrapper(proc.getInputStream(), "OUTPUT");
int exitVal = 0;
error.start();
output.start();
error.join(3000);
output.join(3000);
exitVal = proc.waitFor();
System.out.println("Output: "+output.message+"\nError: "+error.message);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
getting Exception :
java.io.IOException: CreateProcess: \output:C:\InstallList.txt product get name,version error=123
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at CmdExec.main(CmdExec.java:20)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题是您尝试将
"/output:C:\\InstallList.txt Product get name,version"
作为命令执行,但该命令不起作用。 (事实上,这对我来说似乎是无稽之谈。)我希望您应该执行如下命令:
The problem is that you are trying to execute
"/output:C:\\InstallList.txt product get name,version"
as a command and that isn't working. (Indeed, it looks like nonsense to me.)I expect that you should be executing the command like this: