我有下面的linux命令通过java程序运行,其中输入文件名中有空格,而执行系统失败
java.io.IOException: Cannot run program "tsp -I afmarker": error=2, No such file or directory
命令:
String[] commandArr = new String[] { "tsp -I afmarker", "/home/test/prad test.mpg" "-P afmarker -a 10 -v 20 -O file", "/home/prad/output.mpg};
Process process = Runtime.getRuntime().exec(commandArr);
我该如何解决这个问题?
答案 0 :(得分:2)
用字符串数组调用时,Runtime.getRuntime().exec()
期望数组的第一个元素是可执行文件的名称,不带任何参数。如果我没记错的话,您的代码正在指示JVM执行名为tsp -I afmarker
的命令,并且该命令不存在。 tsp
的所有参数应分别指定为传递给exec()
的数组的元素。
答案 1 :(得分:1)
尝试将每个参数分开:
String[] commandArr = new String[] {
"tsp", "-I", "afmarker",
"/home/test/prad test.mpg",
"-P", "afmarker", "-a", "10", "-v", "20",
"-O", "file", "/home/prad/output.mpg"
};