将终端输出转换为java

时间:2014-10-26 00:43:12

标签: java io terminal runtime inputstream

我使用以下代码将terminal命令输出到我的java程序中。

check = CharStreams.toString(new InputStreamReader(java.lang.Runtime.getRuntime().exec(command).getInputStream()));

command = "ifconfig"这工作正常时。但是当command = "ldapwhoami -D \"cn=admin,dc=example,dc=com\" -w password"时,变量check为空。当我在终端中运行相同的命令时,我得到了所需的输出。我在这做错了什么?请帮忙。

1 个答案:

答案 0 :(得分:0)

您没有在命令字符串中转义特殊字符。

如果命令需要双引号,则应为:

command = "ldapwhoami -D \"cn=admin,dc=example,dc=com\" -w password"

注意\"在字符串中插入双引号。

也尝试这种方式:

Process p = Runtime.getRuntime().exec(command);  
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));  

String line = null;
while ((line = in.readLine()) != null) {  
    System.out.println(line);  
} 

其他选项是使用java.util.Scanner