重金求解:applet访问串口的问题,无法找到Win32Driver

fhglhjp 2007-11-27 04:09:11
applet访问串口步骤:1.配置环境,把Sun程序的comm.jar包,win32com.dll,javax.comm.properties放到相应的目录中
2.编写applet程序,并生成class文件
3.把applet程序的class打成jar包
4.生成数字签名文件
5.用数字签名给jar包签名
6.编写页面html代码
7.编写安全策略文件(给allpermission权限)
8.测试代码(用appletviewer 应用策略文件)
请教大虾:  上面步骤是否正确?我目前照上面步骤做,在第8步时,报Caught java.lang.NullPointerException: name can't be null while loading driver com.sun.comm.Win32Driver错误。查看我的源码,出现在51行:
51: Enumeration commportEnum=tmpCommportIdent.getPortIdentifiers();
52: while (commportEnum.hasMoreElements())
53: {
54: tmpCommportIdent=(CommPortIdentifier)commportEnum.nextElement();
55: if ((tmpCommportIdent.getName().trim().toUpperCase().equals
56: (this.commPortName)) && (tmpCommportIdent.getPortType()
57: ==CommPortIdentifier.PORT_SERIAL))
58: {
59: foundPortFlag=true;
60: break;
61: }
62: }
熟悉串口编程的朋友肯定知道这一段是找机器中串口的代码例如(COM3),这代码按理说是不会出这种错的。我就搞不明白了,请教各位,谁能帮我找到原因?
...全文
292 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjm239 2009-02-02
  • 打赏
  • 举报
回复
对啊,解决了,请把解决方法贴出来,大家分享啊
jessy420 2008-08-07
  • 打赏
  • 举报
回复
遇到同样的问题,具体怎么解决啊
jessy420 2008-08-07
  • 打赏
  • 举报
回复
怎么解决的还是不知道啊
hjp80001 2007-12-11
  • 打赏
  • 举报
回复
1.要手动加载WIN32COM.DLL
2.包不能放到JAVA_HOME\JRE\LIB\EXT目录中
3.还要配置安全策略文件
我想做了这些应该就可以访问了
timbear 2007-12-10
  • 打赏
  • 举报
回复
好题目,帮顶,学习中~~
fhglhjp 2007-12-07
  • 打赏
  • 举报
回复
终于自己搞定了,哈哈.
问题是,我的分怎么办?消掉?
千里冰封820 2007-12-04
  • 打赏
  • 举报
回复
你传了空的名字吧
fhglhjp 2007-12-04
  • 打赏
  • 举报
回复
终于有人回了,看字面的意思是这样子的
但是我程序还是能运行通过,这又怎么解释?
有什么办法可以解决吗?
fhglhjp 2007-12-03
  • 打赏
  • 举报
回复
有高人在吗??在线等待中....
fhglhjp 2007-11-30
  • 打赏
  • 举报
回复
兄台,你觉得可以的话,
能不能现在用applet来试试访问串口???
我这事急着呢,在这等
色郎中 2007-11-30
  • 打赏
  • 举报
回复
嘿嘿

APPLET 应该也是可以的,只是,没时间弄,最近,那是以前弄着玩的
fhglhjp 2007-11-30
  • 打赏
  • 举报
回复
这二天我改进代码,把java_home\bin 中的win32com.dll剪切到项目的目录中去,就是和APPLET同一个目录中,
然后在APPLET中动态加载WIN32COM.DLL代码如下:
String driverName = "com.sun.comm.Win32Driver";
CommDriver driver = null;
try {
System.loadLibrary("win32com");
driver = (CommDriver) Class.forName(driverName).newInstance();
driver.initialize();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
运行appletviewer,出错如下:
Oaking:::::<ESPON 532>打开端口....
Oaking:::::<ESPON 532>打开端口....
Caught java.lang.NullPointerException name can't be null while loading driver
com.sun.comm.Win32Driver

javax.comm.PortInUseException:Port currently owned by JfbecJourn
...../*中间省略其他错误提示...
.................................
.................................
/*中间省略其他错误提示....
Oaking:::::<ESPON 532>打开端口....OK
Oaking:::::<ESPON 532>打印数据...."你好..",并走行10行.....
Oaking:::::<ESPON 532>打印数据...."你好..",并走行10行.....OK
Oaking:::::<ESPON 532>关闭端口...
Oaking:::::<ESPON 532>关闭端口...OK

-------------------------------------------------------------------------------------
在我这个APPLET程序中,出现重复调用 打开端口 ,调用二次.
但我检查代码时,却并没有重复调用的情况,打开端口代码我是放在applet的init方法中..按理它只会调用一次.
请教高手,是什么原因?????????????????????????????
fhglhjp 2007-11-30
  • 打赏
  • 举报
回复
再改程序,现在是这样的情况
运行appletviewer,出错如下:
Oaking::::: <ESPON 532> 打开端口....
Oaking::::: <ESPON 532> 打开端口....
Caught java.lang.NullPointerException name can't be null while loading driver
com.sun.comm.Win32Driver
Oaking::::: <ESPON 532> 打开端口....OK
Oaking::::: <ESPON 532> 打印数据...."你好..",并走行10行.....
Oaking::::: <ESPON 532> 打印数据...."你好..",并走行10行.....OK
Oaking::::: <ESPON 532> 关闭端口...
Oaking::::: <ESPON 532> 关闭端口...OK
程序完成,可以打印数据,但有一个空指针异常,请教高人指点!!!!!!!!!!!!!!!!!!!!!!!!!!!!

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧