使用Java从终端打开mac应用程序

使用Java从终端打开mac应用程序,java,terminal,escaping,backslash,Java,Terminal,Escaping,Backslash,假设我有这个代码 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

假设我有这个代码

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执行该命令时,它只是关闭,也许这是一个反斜杠转义的问题?我想做的一切就是打开一个名称中有空格的应用程序,不管是否使用终端。

无需使用
exec
转义空格

我尝试了您的代码,删除了
replaceAll
,打开了一个应用程序,应用程序名中有空格,包含目录中有空格,代码启动了应用程序

另外,
syslog-l
需要一个日志级参数。

使用而不是Runtime.exec()