2012-07-27 262 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需要一個日誌級別的參數。