Java实现的Expect工具:Expectit
jopen
11年前
Expectit - 是纯 Java 1.6+ 实现的 Expect 工具。简单易用和可扩展,全新编写无需依赖第三方库,使用管道和非堵塞 API 基于 NIO 实现。
expect用于自动化地执行linux环境下的命令行交互任务,例如scp、ssh之类需要用户手动输入密码然后确认的任务。有了这个工具,定义在scp过程中可能遇到的情况,然后编写相应的处理语句,就可以自动地完成scp操作了
Maven:
<dependency> <groupId>net.sf.expectit</groupId> <artifactId>expectit-core</artifactId> <version>0.3.0</version> </dependency>
使用方法:
// the stream from where you read your input data InputStream inputStream = ...; // the stream to where you send commands OutputStream outputStream = ...; Expect expect = new ExpectBuilder() .withInputs(inputStream) .withOutput(outputStream) .build(); expect.sendLine("command").expect(contains("string")); Result result = expect.expect(regexp("(.*)--?--(.*)")); // accessing the matching group String group = result.group(2);