CommPortIdentifier.getPortIdentifiers为空

我正在构建一个使用Java Communication API javax.comm通过串行端口进行通信的简单应用程序。

这是我写的java main方法中的一些代码:

CommPortIdentifier cpi = null; Enumeration e = CommPortIdentifier.getPortIdentifiers(); while (e.hasMoreElements()) { try { cpi = (CommPortIdentifier) e.nextElement(); } catch (NoSuchElementException n) { } System.out.println(cpi.getName()); } 

即使我在运行此程序时连接到COM 4端口,枚举e也始终为空。

另外,运行此代码:

 portRead = CommPortIdentifier.getPortIdentifier("COM8"); 

导致抛出NoSuchPortException

我想我已正确完成安装部分并将属性文件win32com.dll文件放在正确的位置。

你知道问题是什么吗?

谢谢

确保win32com.dll(javax.com附带)位于jre \ bin目录中。 确保javax.comm.properties(javax.com附带)位于jdk \ lib目录中。

请记住,您需要将所有解压缩的文件从javax.comm.zip添加到jre

win32com.dll – jre / bin

comm.jar – jre / lib / ext

java.comm.properties – jre / lib (添加后我发现已解决的exception问题)

这适用于我(我安装了x86 jdk)并按照步骤操作

您的问题是Windows无法将正确的PORT传递给您的JAVA程序。

您必须通过以下链接在正确的位置复制正确的文件。

http://kishor15389.blogspot.com/2011/05/how-to-install-java-communications.html

找到您的设备正在工作的端口(尝试使用power shell或hyper terminal查找所有com端口尝试链接 )