1

如何在 OS X 上使用 Runtime.exec() 打开应用程序?

我的导师确实给了我们一个如何做到这一点的例子,除了唯一的问题是他使用 Windows 而我使用 Mac OS X,这是我迄今为止定制的代码:

public class Runtime_execution{
public static void main(String args[]){
    Runtime rt = Runtime.getRuntime();
    Process proc;
    try{
        if(System.getProperty("os.name").startsWith("Mac OS X")){
//                run an OS specific program
            proc = rt.exec("Contacts");
        }else{
            proc = rt.exec("gedit");
        }
        System.out.println("Before calling waitFor() method.");
        proc.waitFor(); //  try removing this line
        System.out.println("After calling waitFor() method.");
    }catch(Exception e){
        System.out.println("Contacts is an unknown command.");
    }
}
}
// find out what the os name is for Mac OS X
class Random{
public static void main(String args[]){
    System.out.println(System.getProperty("os.name"));
}
}

当我运行程序时,输出一直显示:

Contacts is an unknown command. 

我怎样才能解决这个问题?

4

1 回答 1

2

在 OSX 中,您需要通过 Runtime.exec 正在执行的命令行运行可执行文件。

尝试这个:

rt.exec("/Applications/Contacts.app/Contents/MacOS/Contacts");

或者你可以做一个

rt.exec("open /Applications/Contacts.app");
于 2013-06-08T05:29:13.650 回答