在Mac OS中使用Runtime.getRuntime()。exec()会导致错误

时间:2012-09-20 17:05:50

标签: java macos runtime

我试图在我的Java应用程序中使用此代码在Mac OS X中运行另一个Jar:

Runtime runtime = Runtime.getRuntime();
String cmd = "java -Xmx1024m -jar \"/Volumes/NANO PRO/My Program/Main.jar\"";
Process process = runtime.exec( cmd );

如果Main.jar存在于没有空格的路径中,它将正常工作,但由于它存在于带空格的路径中,因此会导致错误:

enter image description here

有没有办法在有空格的路径中运行?

1 个答案:

答案 0 :(得分:8)

使用数组构建命令的不同部分,并将其留给Java运行时根据底层环境适当地转换它们。

String [] cmd = {"java", 
                 "-Xmx1024m", 
                 "-jar",
                 "/Volumes/NANO PRO/My Program/Main.jar"};

另外,您可以查看ProcessBuilder