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),这代码按理说是不会出这种错的。我就搞不明白了,请教各位,谁能帮我找到原因?
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),这代码按理说是不会出这种错的。我就搞不明白了,请教各位,谁能帮我找到原因?
然后在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方法中..按理它只会调用一次.
请教高手,是什么原因?????????????????????????????
能不能现在用applet来试试访问串口???
我这事急着呢,在这等
运行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
程序完成,可以打印数据,但有一个空指针异常,请教高人指点!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2.包不能放到JAVA_HOME\JRE\LIB\EXT目录中
3.还要配置安全策略文件
我想做了这些应该就可以访问了