2012-07-27 189 views
0

的Mac应用程序,可以说我有这样的代码使用Java来打开从终端

import java.io.IOException; 

public class Test 
{ 
public static void main(String[] argv) throws InterruptedException, IOException { 
    String path = "/an app with spaces.app"; 
    path = path.replaceAll(" ", "\\\\ "); 
    System.out.println(path); 
    Runtime.getRuntime().exec(new String[] { "open", path}); 
    Runtime.getRuntime().exec("syslog -s -l " + path); 
} 
} 

当我输出在打印尝试在终端的命令的路径,并可以打开应用程序的事情是,但是当我尝试从Java执行命令,它只是关闭,也许这是一个逃避反斜杠问题?我想要做的每件事都是打开一个名字中有空格的应用,使用终端或不使用终端。

回答

0

无需使用exec逃避的空间。

我试过你的代码,去掉replaceAll,并在包含目录中的应用程序名称打开与空间的应用程序,空间,并且代码启动的应用程序。

此外,syslog -l需要一个日志级别的参数。