首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于远程登录的ExpectJ

用于远程登录的ExpectJ
EN

Stack Overflow用户
提问于 2012-09-28 09:48:11
回答 1查看 652关注 0票数 0

我想在Java中使用等同于Expect的东西。这是一个简单的代码:

代码语言:javascript
复制
public class TelnetJExpect
{
    @Test
    public void telnetTest() 
    {
        ExpectJ expectinator = new ExpectJ(5);
        try
        {
            Spawn shell = expectinator.spawn("172.17.80.161", 23);
            System.out.println("\nExit: " + shell.getCurrentStandardOutContents());
            shell.stop();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            assertTrue(false);
        }
    }
}

结果,我得到了垃圾:

代码语言:javascript
复制
ÿýÿý ÿý#ÿý'

退出:

代码语言:javascript
复制
ÿýÿý ÿý#ÿý'

但是,当我从命令行使用telnet时,我得到了连接。

请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2013-04-02 21:12:41

尝尝这个

代码语言:javascript
复制
    ExpectJ ex = new ExpectJ(50);

    //org.apache.commons.net.telnet.TelnetClient
    TelnetClient telnetClient = new TelnetClient();
    telnetClient.connect("192.168.56.101");

    /*
     * add this constructor to TelnetSpawn
     * 
     * public TelnetSpawn(InputStream in, OutputStream out) throws IOException {
        this.m_socket = null;
        m_fromSocket = in;
        m_toSocket = out;
     */
    TelnetSpawn telnetSpawn = new TelnetSpawn(telnetClient.getInputStream(), telnetClient.getOutputStream());
    Spawn spawn = ex.spawn(telnetSpawn);
    try{
        //provide username and password here
        spawn.interact();
    }catch(NullPointerException npe){
        //ignore, nasty expectj bug
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12632514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档