java - CommPortIdentifier.getPortIdentifiers 为空

标签 java serial-port javax.comm

我正在构建一个简单的应用程序,它使用 Java 通信 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(添加后我发现异常问题已解决)

关于java - CommPortIdentifier.getPortIdentifiers 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15955530/

相关文章:

serial-port - Arduino串行通讯输出

c# - 在 C# 中管理串口

java - 无法使用 javax.comm api 找到端口

java - 如何检测与 javax.comm 的串口连接断开?

java - java spring中部分托管、部分非托管类

java - 将字符串转换为 json 不起作用 java

serial-port - 通过 AT 命令向 GSM 手机/调制解调器提交 "operator commands"(例如剩余的现金 SIM 卡积分)

java - 使用 Javax.comm 重新枚举 java 中的所有串行设备

Java Swing BasicUI 更新错误,我该怎么办?

java - 如何使 JavaFX Web 浏览器显示警报和确认消息