2015-11-02 131 views
-1

我在下面的代碼中嘗試獲取ran命令的輸出。但它打印空白。如何在Mac上運行終端命令並通過java打印輸出

String cmd = "/bin/bash device_id -l"; 
Process process = Runtime.getRuntime.exec(cmd); 
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream())); 
String line; 
while ((line = reader.readLine()) != null) { 
    System.out.println(line); 
} 
reader.close(); 

任何人都可以請幫助我。我必須得到連接的iDevice UDID。

+0

嘗試 '字符串CMD = 「DEVICE_ID -l」;' – jctim

+0

,是不是在蘋果@jctim –

+0

工作,我不知道該怎麼做你的命令做的,但我想'字符串CMD =「PS - ef「;'並在stdout中獲得輸出。也許你的命令在stderr中寫入? – jctim

回答

0

用下面的代碼我可以得到連接的設備udid。

public String deviceUDID() throws IOException{ 
     ProcessBuilder builder = new ProcessBuilder("/bin/bash", "-c", "/usr/local/bin/idevice_id -l"); 
     builder.redirectErrorStream(true); 
     Process p = builder.start(); 
     BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String line; 
     line = r.readLine(); 
     System.out.println(line); 
     return line; 
    } 
相關問題