Java中操作串口的步骤与实现
设置串口API:1 解压缩javacomm20-win32,
把omm.jar
放入 Java-home\jre\lib\ext 目录内
Java-home\jre\lib
Java-home\lib
把 javax.comm.properties文件
放入 Java-home\jre\lib\ext 目录内
Java-home\jre\lib
Java-home\lib
2 win32com.dll 文件放入:
a) java-home\bin
b) java-home\jre\bin 按上面的配置,写控制台程序,,可以实现串口的收发数据。JAVA-HOME 是JDK1.6的根目录
是不是在NETBEANS 平台下,就不要在其他设置了, 或句话说, 串口相关的API,只和JDK配置有关? 只要我的NETBEANS环境 是使用 配置过串口API的JDK 就可以了?
设置串口API:1 解压缩javacomm20-win32,
把omm.jar
放入 Java-home\jre\lib\ext 目录内
Java-home\jre\lib
Java-home\lib
把 javax.comm.properties文件
放入 Java-home\jre\lib\ext 目录内
Java-home\jre\lib
Java-home\lib
2 win32com.dll 文件放入:
a) java-home\bin
b) java-home\jre\bin 按上面的配置,写控制台程序,,可以实现串口的收发数据。JAVA-HOME 是JDK1.6的根目录
是不是在NETBEANS 平台下,就不要在其他设置了, 或句话说, 串口相关的API,只和JDK配置有关? 只要我的NETBEANS环境 是使用 配置过串口API的JDK 就可以了?
但是还有个问题,下面的代码:try
{
CommPortIdentifier commportidentifier = CommPortIdentifier.getPortIdentifier("COM1");
serialPort = (SerialPort)commportidentifier.open("smsapp", 3000);
outputStream = serialPort.getOutputStream();
inputStream = serialPort.getInputStream();
serialPort.setSerialPortParams(57600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
outputStream.write(getversion); //发送命令
上面的代码不全,只列了部分
全部的代码,在控制台下编译好了, 然后,JAVA getver(文件名)
每运行一次,都可以看到设备返回正确的数据回来。但是将代码移植到 NETBEANS平台后,添加到 一个按妞下面
编译正常,但至少第一次按下按钮 返回正常后面再按 都是提示如下:
“javax.comm.PortInUseException: Port currently owned by smsapp” 应该是串口被占了,, 控制台方式,每次都是程序全新跑一边,应该不存在串口被占 现在问题是
如何在按钮里加个判断,,如果串口被打开了,就不再重新做串口连接动作?