因为项目需要打印条形码标签,所以需要能进行串口操作的组件,经网上搜寻一番,找到了Java Communication API(Window Platform) 。
将下载的包解压后,按照readme的指示,将comm.jar与javax.comm.properties放到JDK的libt目录下;win32com.dll放到JDK的bin目录下;最后将comm.jar的路径加到环境变量classpath中。
运行示例,发现不能正常运行,又经过网上一番搜寻,找到答案,还需要将win32com.dll放到window/system32目录下。
Java Communication API使用比较方便,代码如下
//打开COM1串口,如果是在Linux/Unix平台下,则是对应设备文件标识
CommPortIdentifier comPortIdn = CommPortIdentifier.getPortIdentifier("COM1");
//打开端口,2000毫秒没响应则失败
SerialPort serialPort = (SerialPort) comPortIdn.open("Intermec 3440", 2000);
//设置串口参数,波特率:9600;数据位:7位;停止位:1位;偶数校验
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_7
, SerialPort.STOPBITS_1, SerialPort.PARITY_EVEN);
//流控制:XON/XOFF
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_XONXOFF_IN);
至此大部分工作已完成,所剩的只是把条形码的控制字符通过流写进去就行了。