wjwjx123456 2013-09-10 09:28 采纳率: 0%
浏览 1780

android client使用 apache 第三方远程访问包TelnetClient,一直出错请众大神帮帮忙

error:
dalvikvm Could not find class 'org.apache.commons.net.telnet.TelnetClient',

referenced from method com.test.telnet.TelnetUtil.
AndroidRuntime FATAL EXCEPTION: Thread-1263
AndroidRuntime java.lang.NoClassDefFoundError:

org.apache.commons.net.telnet.TelnetClient
AndroidRuntime at com.test.telnet.TelnetUtil.(TelnetUtil.java:9)
AndroidRuntime at com.test.main.MainActivity$2.run(MainActivity.java:46)
AndroidRuntime at java.lang.Thread.run(Thread.java:841)

source:
package com.test.telnet;

import java.io.InputStream;
import java.io.PrintStream;
import org.apache.commons.net.telnet.TelnetClient;

public class TelnetUtil {

private TelnetClient telnet = new TelnetClient();

private InputStream in;  

private PrintStream out; 

private String port;

private String ip;

public TelnetUtil(String ip, String port){

    this.ip=ip;

    this.port=port;

}

 /** 
 * @return boolean 连接成功返回true,否则返回false 
 */  

public boolean connect() {  

    boolean isConnect = true;  

    try { 

        telnet.connect(ip, Integer.parseInt(port));  

        in = telnet.getInputStream();  

        out = new PrintStream(telnet.getOutputStream());  

    } catch (Exception e) {  

        isConnect = false;  

        e.printStackTrace();  

        return isConnect;  

    }

    return isConnect;  
}  

protected void disconnect() { 

    try {  

        telnet.disconnect();  

    } catch (Exception e) {

        e.printStackTrace();  

    }  

}  

public String readUtil() { 

    try {  

        StringBuffer sb = new StringBuffer();  

        char ch=0;

        while (true) {  

            ch = (char) in.read();

            sb.append(ch);

            if(sb.length()>=512){  //----buffer size = 512*2 byte = 1 kB---
                                   //synchronized block  
                return sb.toString();

            }
        }  

    } catch (Exception e) {  

        e.printStackTrace();  

    } 

    return null;  

}  

private void write(String value) { 

    try {  

        out.println(value);

        out.flush();  

    } catch (Exception e) { 

        e.printStackTrace(); 

    }  

}  

/**
 * 向服务器发送命令
 * @param string
 */

public String sendCommand(String command) {  

    try {  

        write(command);

    } catch (Exception e) {

        e.printStackTrace();

    }  

    return null;  

}  

}

线程内调用:

TelnetUtil tu = new TelnetUtil("218.56.40.136","1602");
tu.connect();
tu.sendCommand("client");
res=tu.readUtil();

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-31 07:25
    关注

    您的错误消息表明您的Android应用程序找不到类"org.apache.commons.net.telnet.TelnetClient"。该类是TelnetClient的主类,因此它需要在编译您的应用程序时可用。


    检查您的项目中是否已添加org.apache.commons.net包。如果没有,请使用maven或其他方法将其添加到您的项目中。

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?