java运行时。getRuntime。带有长参数的exec(cmd)
我正在做一个命令行应用的前端。它有很长的一段时间,命令行与此类似:
public String liveShellCommand(){
String cmd="command mode --parameter arg --parameter2 arg2 --parameter3 arg3";
Runtime run = Runtime.getRuntime() ;
Process pr ;
try {
log.progress("sending command: " +cmd);
pr = run.exec( cmd );
pr.waitFor() ;
在我添加“模式”开关之前,一切似乎都正常。“模式”开关从命令行执行。我尝试了几种组合,将参数拆分为一个数组,该数组也不会执行。我认为这与“模式”前面没有a有关,它前面不能有a
我做错了什么
编辑:我忘了提到我所能看到的是:调试器停止在不可编译的源代码上。我使用的是netbeans,它似乎没有打印出堆栈跟踪。它在奔跑中停止。执行官(cmd)。java有什么问题吗
我能够使用ProcessBuilder来运行它,而不只是简单地失败
它解析“command”很好,但是当我添加“command mode”时
java.io.IOException: Cannot run program "command mode": java.io.IOException: error=2, No such file or directory
所以我猜它无法解析
# 1 楼答案
使用ProcessBuilder并向其传递字符串[]