本站首页    管理页面    写新日志    退出


«April 2019»
123456
78910111213
14151617181920
21222324252627
282930


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9244093
建立时间:2004年12月20日




[java语言]为什么会出现Exception in thread "main" java.lang.NoClassDefFoundError的错误?
原创空间,  文章收藏

邢红瑞 发表于 2010-5-11 11:18:04

 写一下 怕自己以后忘记运行环境: redhat linux as4.6, j2sdk1.6.13SendMessage.java的内容如下:package test; import org.smslib.SMSLibException;import org.smslib.Service;import org.smslib.OutboundMessage;import org.smslib.AGateway;import org.smslib.modem.SerialModemGateway; import java.io.IOException; /** * Created by IntelliJ IDEA. * User: asiainfo * Date: 2010-5-10 * Time: 16:14:30 * To change this template use File | Settings | File Templates. */public class SendMessage {    public void doIt(String phone, String content) throws IOException,            InterruptedException, SMSLibException {        Service srv;        OutboundMessage msg;        srv = new Service();        SerialModemGateway gateway = new SerialModemGateway("modem.ttyUSB0",                "/dev/ttyUSB0", 9600, "WAVECOM MODEM", "W810");//采用Sony Ericsson的W810c手机发送        gateway.setProtocol(AGateway.Protocols.PDU);        gateway.setInbound(true);        gateway.setOutbound(true);        gateway.setSimPin("0000");        srv.addGateway(gateway);        srv.startService();        System.out.println("Mobile Device Information: ");        System.out.println(" Manufacturer : " + gateway.getManufacturer());        System.out.println(" Model : " + gateway.getModel());        System.out.println(" Serial No : " + gateway.getSerialNo());        System.out.println(" IMSI : " + gateway.getImsi());        System.out.println(" S/W Version : " + gateway.getSwVersion());        System.out.println(" Battery Level : " + gateway.getBatteryLevel() + "%");        System.out.println(" Signal Level : " + gateway.getSignalLevel() + "%");        msg = new OutboundMessage(phone, content);        srv.sendMessage(msg);         srv.stopService();    }     public static void main(String args[]) throws IOException,            InterruptedException, SMSLibException {        SendMessage app = new SendMessage();         app.doIt("136******", "Hello 邢红瑞");     }} 运行: /usr/java/jre1.6.0_13/bin/java -Dsmslib.serial.polling -classpath  log4j-1.2.15.jar:smslib-3.4.6.jar test.SendMessage出错: Exception in thread "main" java.lang.NoClassDefFoundDrror: SendMessage 后来终于找到原因: java加载了SendMessage.class以后,java就试图到CLASSPATH中找类SendMessage,CLASSPATH为:$CLASSPATH=/usr/java/jre1.6.0_13/lib:/usr/java/jre1.6.0_13/jre/libjava找不到SendMessage类的定义。windows包含了当前路径,但是linux和unix没有当前路径,必须手工添加/usr/java/jre1.6.0_13/bin/java -Dsmslib.serial.polling -classpath  log4j-1.2.15.jar:smslib-3.4.6.jar:. test.SendMessage注意最后加了一个冒号和点,冒号是linux下文件分割符。


阅读全文(6590) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144255257 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号