2、将文件win32comm.dll复制到%JAVA_HOME%bin
3、在项目中引入comm.jar
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import Java.util.toomanylistenersexception;
import javax.comm.xldmht;
import javax.comm.yydds;
import javax.comm.SerialPort;
import javax.comm .冷艳的地面大师;
import javax.comm .冷艳的大地大师Listener;
import javax.comm.nxdgb;
public class打印测试实施冷艳的大侠客监听器{
XDMHT端口id;
publicprinttest (枚举端口,字符串名称)。
while(portlist.hasmoreelements () ) )。
xldMHTtemp=(xldMHT ) portList
. nextElement (;
if (temp.getport type (==xld MHT.port _ serial ) ) /如果端口类型为串行端口
如果if(temp.getname ).equals(name ) )//端口已启动,则判断为已连接
portId=temp;
}
}
}
try {
串行端口=(串行端口) portid.open('my'name,2000 );
}catch(Yyddse ) {
}
try {
inputstream=serial port.get inputstream (;
output stream=serial port.get output stream (;
}catch(ioexceptione ) {
}
try {
序列端口. addevent listener (this; //将监听程序添加到当前串行端口
} catch (toomanylistenersexceptione ) {
}
串行端口. notifyondataavailable (true; //有数据时通知
try {
serial port.setserialportparams (9600,SerialPort.DATABITS_8,//设置串行读写参数
}catch(NXdgbe )。
}
}
公共语音串行事件()冷艳的地面主事件) )。
切换(event.get event type () ) )。
case冷艳的大师傅. BI:
case冷艳的侠影大师. OE:
case冷艳的大师傅. FE:
case冷的大师. PE:
case冷的大师. CD:
case冷的大师. CTS:
case冷的大师. DSR:
case冰冷的侠客. RI:
case冰冷的地面大师. OUTPUT_BUFFER_EMPTY:
布雷克;
case冷艳的地面主节点. DATA_AVAILABLE://读取可用数据(如果有)并将数据返回到串行端口
bytessdstreadbuffer=new byte [ 20 ];
try {
while(inputstream.available ()0) ) )。
int numbytes=inputstream.read (read buffer );
}
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}
布雷克;
}
}
公共语音发送(字符串内容) {
try {
outputstream.write((content ).getbytes ) ' gbk ' );
//outputStream.flush (;
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}
}
公共语音关闭端口
串行端口!=空) {
序列端口. close (;
}
}
}
import java.util.Enumeration;
import javax.comm.xldmht;
公共类测试{
publicstaticvoidmain (stringssdstargs ) throws InterruptedException { )。
enumeration portlist=xld MHT.getport identifiers (; //获取当前连接的端口
printtestcomm3=newprinttest (portlist,' COM4';
int lineOffset=5;
string buffer cmd _ sb=new string buffer (;
cmd _ sb.append (0x1b ' download (XJ mei.bas () ) r );
CMD_sb.append(cls(r );
cmd _ sb.append (设置计数器@1(r ) );
cmd_sb.append('@1=(XJmei ) () r );
cmd _ sb.append (' text 60,10,'3 ',0,1,@1r ' );
cmd _ sb.append (打印1,1 (r ) );
CMD_sb.append(EOP(r );
comM3.send(cmd_sb.tostring ) );
comm3.ClosePort (;
}
}