2015-11-02 133 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; 
    } 
相关问题