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();
}
}
}
(原始方法) 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)的java得到异常执行命令提示问题
而你的问题是什么? – 2011-04-02 06:43:14
为了更快得到更好的帮助,请发布[SSCCE](http://pscode.org/sscce.html),这应该可以解释什么是StreamWrapper。这也有助于提出一个具体的问题,正如Jon所指出的那样,即使它只是“我如何解决这个例外?”。 – 2011-04-02 07:24:28
Runtime.exec为每个调用启动一个新的进程。 exec(“wmic”)将启动一个没有参数的进程,而exec(TEMP)的命令行参数没有可执行文件。结果是无稽之谈,失败了。 – josefx 2011-04-02 08:43:06