我使用以下代码将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
为空。当我在终端中运行相同的命令时,我得到了所需的输出。我在这做错了什么?请帮忙。
答案 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
。