我想要实现的期望命令中使用Java“互动”。 在期待,有可能打开一个SSH会话,进行身份验证,然后,使用“交互”命令授予控制权交还给用户。 这是可能的与Java? 我试着expectJ,expect4J和expectForJava但有一点文档和几乎没有如何做到这一点的例子。 TIA。
更新:对于“互动”命令参考,请检查了这一点: http://wiki.tcl.tk/3914
“互动是一个Expect命令其给出当前进程的控制给用户,以使得按键被发送到当前的处理,并且由于输出和当前进程的标准错误被返回。”
这些库可能满足您的需求更好地:
SSHJ
https://github.com/shikhar/sshj
jSch
http://www.jcraft.com/jsch/
如果有人有兴趣,我已经加入到基本的互动循环支持ExpectIt ,我自己的开源期待Java实现(对不起,自我宣传),因为0.8版本。
下面是一个例子在Java 8中的系统的输入流进行交互的:
try (final Expect expect = new ExpectBuilder()
.withInputs(System.in)
.build()) {
expect.interact()
.when(contains("abc")).then(r -> System.out.println("A"))
.when(contains("xyz")).then(r -> System.err.println("B"))
.until(contains("exit"));
System.out.println("DONE!");
}
System.in.close();