从Telnet获取输出

时间:2011-03-15 10:53:22

标签: java telnet

有谁知道如何用Java读取telnet的输出?我能够连接到 服务器并执行一些命令,但我需要从那些命令输出。

例如,命令ls给出了所有文件和目录的列表,所以我想得到它 列出并在我的Java代码中用它做一些事情。

我曾尝试过Telnet的第三方库,如apache-commons和sinetfactory(www.jscape.com )但我的案子没有结果......

伊戈尔

2 个答案:

答案 0 :(得分:3)

您可以阅读流程InputStream的输出,如下所示:

final Process process =
    new ProcessBuilder("path/to/telnet", "and", "some", "args").start();
final AtomicBoolean running = new AtomicBoolean(true);
final InputStream processData = process.getInputStream();

// start a thread to read process output
new Thread(new Runnable(){

    @Override
    public void run(){
        while(running.get()){

            // read processData

        }

    }
}).start();
process.waitFor();
running.set(false);

答案 1 :(得分:0)

我知道你要求一个java解决方案,但是期望的脚本语言就是针对这类事情而开发的。 http://expect.sourceforge.net/

如果 是java,那么请忽略。