我使用以下代码来识别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());
}
}
}
提前致谢..
答案 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