日期:2014-05-20  浏览次数:20816 次

swing编程:打开串口在命令行方式下报错.(解决开贴再送100分)
编写swing界面程序打开(open)串口程序的错误:
程序中有二个类,A类是操作串口的类,B类是写swing界面的类
运行B类,然后在B类中调用A类的方法,打开串口.出现下面的二种情况:
1.在Eclipse中运行B类,然后B类调用A类的方法,打开串口成功.
2.我在命令行方式(MS-DOS)下,用java命令执行这个程序时,却出现如下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/comm/CommPortIdentifier 
有高手能解释原因吗?
NoClassDefFoundError这个错误是指类加载出错.不是说没有这个类,而是加载时顺序出错.难怪要自己写类加载器,但为什么只在
命令方式下会报这个错误呢?
是否swing界面还需要写线程来开端口吗?


------解决方案--------------------
看这个错误,好像是找不到相应的类。eclipse下库文件已经管理好的。直接用命令行的话,你可能要把相应的库文件包含到路径中去吧。
------解决方案--------------------
javax/comm/CommPortIdentifier
缺少包吧. 这个类找不到
------解决方案--------------------
1 classpath 应该是 CLASSPATH
2 请参照我8楼的做法,运行前确认CLASSPAHT 里面有那个jar

3 你不会批处理命令吗?实在不行,手工输入CLASSPATH啊

set CLASSPAHT=%CLASSPATH%;c:\jdk\jre\lib\ext\comm.jar;