java执行shell交互:
方法一:
用linux自带的expect
expect -c 'spawn /opt/hadoop-2.7.4/bin/hadoop namenode -format
expect "Proceed formatting"
send "Y\r"
expect "filesystem in QJM "
send "Y\r"
interact '
java中要转义:runcmd(" expect -c 'spawn /opt/hadoop-2.7.4/bin/hadoop namenode -format\n" + "expect \"Proceed formatting\"\n" + "send \"Y\\r\"\n" + "expect \"filesystem in QJM \"\n" + "send \"Y\\r\"\n" + "interact '\n");
方法二:
封装jsch,使用流处理