繁体   English   中英

CommPortIdentifier.getPortIdentifiers为空

[英]CommPortIdentifier.getPortIdentifiers is empty

我正在构建一个使用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());
        }

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

另外,运行此代码:

portRead = CommPortIdentifier.getPortIdentifier("COM8");

导致抛出NoSuchPortException

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

你知道问题是什么吗?

谢谢

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

win32com.dll - jre / bin

comm.jar - jre / lib / ext

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM