但是还需要把这几个文件拷贝到C:\Windows\System32下面。
提示
java.lang.UnsatisfiedLinkError: no win32com in java.library.path
的话只是因为你需要把相应的comm.jar 【Native】一下,具体操作:
点击项目名右键-->Properties->Java build Path->Libraries->comm.jar(前面有个三角形)-->Native libaray location:-->选择那个comm.jar的目录,如:D:/项目/WebRoot/WEB-INF/lib即可。
1.导入支持java串口通信的jar包:在maven项目的pom.xml中添加RXTXcomm的依赖 或者 下载RXTXcomm.jar并导入到项目中。
支持Java串口通信操作的jar包,java.comm比较老,而且不支持64位系统,推荐使用Rxtx这个jar包(32位/64位均支持)。
注意:运行过程中抛出 java.lang.UnsatisfiedLinkError 错误或 gnu.io 下的类找不到时,将rxtx解压包中的 rxtxParallel.dll,rxtxSerial.dll 这两个文件复制到 C:\Windows\System32 目录下可解决该错误。
2.编写代码操作串口:
串口必要参数类:包含连接串口所必须的参数,方便在调用串口时设置和传递串口参数。
public static void process() {try {
Enumeration portList = CommPortIdentifier.getPortIdentifiers()
while (portList.hasMoreElements())
{
CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement()
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)//如果端口类型是串口则判断名称
{
if(portId.getName().equals("COM1")){//如果是COM1端口则退出循环
break
}else{
portId=null
}
}
}
SerialPort serialPort = (SerialPort)portId.open("Serial_Communication", 1000)//打开串口的超时时间为1000ms
serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE)//设置串口速率为9600,数据位8位,停止位1们,奇偶校验无
InputStream in = serialPort.getInputStream()//得到输入流
OutputStream out = serialPort.getOutputStream()//得到输出流
//进行输入输出操作
//操作结束后
in.close()
out.close()
serialPort.close()//关闭串口
} catch (PortInUseException e) {
e.printStackTrace()
} catch (UnsupportedCommOperationException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
}