如何实现期望“互动”命令用java(how to implement expect “interac

2019-08-17 06:21发布

我想要实现的期望命令中使用Java“互动”。 在期待,有可能打开一个SSH会话,进行身份验证,然后,使用“交互”命令授予控制权交还给用户。 这是可能的与Java? 我试着expectJ,expect4J和expectForJava但有一点文档和几乎没有如何做到这一点的例子。 TIA。

更新:对于“互动”命令参考,请检查了这一点: http://wiki.tcl.tk/3914

“互动是一个Expect命令其给出当前进程的控制给用户,以使得按键被发送到当前的处理,并且由于输出和当前进程的标准错误被返回。”

Answer 1:

这些库可能满足您的需求更好地:

SSHJ

https://github.com/shikhar/sshj

jSch

http://www.jcraft.com/jsch/



Answer 2:

如果有人有兴趣,我已经加入到基本的互动循环支持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();


文章来源: how to implement expect “interact” command using java