在Windows中从Java程序运行命令提示符

在Windows中从Java程序运行命令提示符,java,windows,runtime.exec,Java,Windows,Runtime.exec,我目前有以下批处理脚本,我想从Java程序运行: “C:\程序 Files\Java\jdk1.6.0\u 25\bin\Java.exe“ -类路径“D:…” Main> “..\result.out” 现在,我做了一个简单的 Runtime.getRuntime().exec(command); 其中command是我上面显示的字符串。问题在于,它只是用显示的参数调用java.exe,而不是用给定的参数调用控制台。区别很微妙,因为如果它直接调用java.exe,它将忽略输出流的重定向 有没

我目前有以下批处理脚本,我想从Java程序运行:

“C:\程序 Files\Java\jdk1.6.0\u 25\bin\Java.exe“ -类路径“D:…” Main> “..\result.out”

现在,我做了一个简单的

Runtime.getRuntime().exec(command);
其中
command
是我上面显示的字符串。问题在于,它只是用显示的参数调用
java.exe
,而不是用给定的参数调用控制台。区别很微妙,因为如果它直接调用
java.exe
,它将忽略输出流的重定向

有没有一个简单的方法可以做到这一点?我曾尝试在
命令
前面加上“cmd”,但似乎没有什么帮助

我希望不必读取输出流,然后手动将其保存到文件中

感谢

解决了这个问题

cmd /c "command"
够了

Process proc = Runtime.getRuntime().exec("acpi -b");                            
现在,您可以像任何普通的输入和输出流一样使用proc.getInputStream()和proc.getOutputStream()

然后可以将内容写入输出文件


这是我最常用的方法。

您可以使用ProcessBuilder来完成此任务。或者,不要在一行中编写整个命令,而是打断它并执行它。