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端口尝试链接 )