日期:2014-05-20  浏览次数:20595 次

使用Java Communications API访问串口程序,抛出javax.comm.NoSuchPortException
请教各位大侠:
        我在PC机上实现JAVA   COMM通信,本来这个项目是用VB实现的,能实现COM1口的通信,但是我要用JAVA来改进,可是不知道怎么回事,我总是检测不到COM端口,一个端口都检测不到,急交项目,谢谢大家!!!
        其他的配置,java.comm包也安装到特定的目录下了。
        1.   将下载后的压缩文件zip压缩包解压,假设解压目录为C:\commapi。假设Java开发包安装在了C盘的C:\jdk1.5中。  

  2.   使用如下命令将win32com.dll复制到C:\jdk1.5\bin中。  

copy   c:\commapi\win32com.dll   c:\jdk1.5\bin  

  3.使用如下命令将comm.jar复制到c:\jdk1.5\lib目录中。  

copy   c:\commapi\comm.jar   c:\jdk1.5\lib  

  4.   使用如下命令将Javax.comm.properties复制到c:\jdk`1.5\lib中。  

copy   c:\commapi\Javax.comm.properties   c:\jdk1.5\lib  

  5.   将comm.jar加入到classpath中。  

        import   javax.comm.*;
        import   java.util.*;
        省略其他的,部分主要源码如下:
        Enumeration   en   =   CommPortIdentifier.getPortIdentifiers();
while   (en.hasMoreElements())  
{
portId   =   (CommPortIdentifier)en.nextElement();
//如果端口类型是串口,则打印出其端口信息
if   (portId.getPortType()   ==   CommPortIdentifier.PORT_SERIAL)  
textArea.append(portId.getName());
}
try
{
portId=CommPortIdentifier.getPortIdentifier( "COM1 ");
SerialPort   serialPort   =   (SerialPort)portId.open( "Intermec   3440 ",   2000);
serialPort.setSerialPortParams(2400,   SerialPort.DATABITS_8
          ,   SerialPort.STOPBITS_1,   SerialPort.PARITY_NONE);

}
catch(PortInUseException   ex)
{
JOptionPane.showMessageDialog(this,ex);
}
catch(NoSuchPortException   ex)
{
JOptionPane.showMessageDialog(this,ex);
}
catch(UnsupportedCommOperationException   ex)
{
JOptionPane.showMessageDialog(this,ex);
}

        程序运行就是报错:javax.comm.NoSuchPortException

        请各位高手指教,谢谢了!!!


------解决方案--------------------
uppp
------解决方案--------------------
up
------解决方案--------------------
你只是将javax.comm包的相关文件添加到jdk下,而没有添加到jre下,别忘了,程序是在jre下运行的。

------解决方案--------------------
下面有介绍,还有需要的动态库及类库下载
http://www.programmerstudy.com/programme/java/20084/97.html