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

时间:2012-07-27 20:49:37

标签: 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(path);
    Runtime.getRuntime().exec( new String[] { "open", path} );
     Runtime.getRuntime().exec("syslog -s -l " + path);
 }
}

当我在print中输出路径并在终端中尝试命令时,它会打开应用程序,但是当我尝试从Java执行命令时,它只是关闭,也许这是转义反斜杠的问题?我想要做的就是打开一个名称中带有空格的应用程序,使用终端或不使用终端。

2 个答案:

答案 0 :(得分:0)

无需使用exec转义空格。

我已经尝试了您的代码,删除了replaceAll,并在应用程序名称中打开了包含空格的应用程序,包含目录中的空格,以及代码启动了应用程序。

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

答案 1 :(得分:0)

使用ProcessBuilder代替Runtime.exec()。