java中的com端口标识

时间:2011-12-22 10:08:14

标签: java

我使用以下代码来识别comports。在我的系统中有三个端口,但它在ports.hasMoreElements()方法中显示为false。我还在库中添加了comm.jar,我使用的是windows xp(service pack 3)。请仔细查看代码并帮助我。

import java.util.*;
import javax.comm.*;

public class Main
{
    public static void main(String[] args)
    {
        Enumeration ports = CommPortIdentifier.getPortIdentifiers();
        System.out.println(ports.hasMoreElements());
        while(ports.hasMoreElements())
        {
            CommPortIdentifier cpi =
                           (CommPortIdentifier)ports.nextElement();
            System.out.println("Port " + cpi.getName());
        }
    }
}

提前致谢..

5 个答案:

答案 0 :(得分:1)

让Java Communications API与Windows系统正确交互有一些技巧。您从Sun下载的项目包括三个非常重要的文件:

comm.jar  
win32com.dll  
javax.comm.properties  

要让JVM识别串行端口,正确放置这些文件非常重要。

使用以下安装方法有效:
     comm.jar 应放在:

%JAVA_HOME%/lib  
%JAVA_HOME%/jre/lib/ext    

win32com.dll 应放在:

%JAVA_HOME%/bin   
%JAVA_HOME%/jre/bin  
%windir%System32  

javax.comm.properties 应放在:

%JAVA_HOME%/lib  
%JAVA_HOME%/jre/lib

答案 1 :(得分:1)

您只需导入“import gnu.io. *;”和RxTxcomm.jar添加到库中。

1)从http://rxtx.qbang.org/wiki/index.php/Download下载Rxtx二进制文件  2)解压缩zip文件  3)复制RXTXcomm.jar ---&gt; <JAVA_HOME>/jre/lib/ext
 4)复制librxtxSerial.so ---&gt; <JAVA_HOME>/jre/lib/i386/
 5)复制librxtxParallel.so ---&gt; <JAVA_HOME>/jre/lib/i386/

答案 2 :(得分:0)

这是commapi的典型问题: - )

阅读安装指南,在javacomm.api或wossname旁边,必须将两个或三个其他文件复制到一个非常具体的位置。

所有这些。

否则你只是看不到任何COM端口,错误处理有点偏弱,抱歉,我自己经历过三次相同的事情; - )

答案 3 :(得分:-1)

%JAVA_HOME%/lib  
%JAVA_HOME%/jre/lib/ext    

win32com.dll应该放在:

%JAVA_HOME%/bin   
%JAVA_HOME%/jre/bin  
%windir%System32  

javax.comm.properties应放在:

%JAVA_HOME%/lib  
%JAVA_HOME%/jre/lib  //this work out for me by sann seun

答案 4 :(得分:-2)

comm.jar应放在:

%JAVA_HOME%/lib  
%JAVA_HOME%/jre/lib/ext 

win32com.dll应该放在:

%JAVA_HOME%/bin   
%JAVA_HOME%/jre/bin  
%windir%System32

javax.comm.properties应放在:

%JAVA_HOME%/lib  
%JAVA_HOME%/jre/lib  //this work out for me by sanni seun