Java - 获取 COM 端口 ID

标签 java serial-port javax.comm jssc

我正在编写一个 java 程序,现在我有一个包含 COM 端口号的设置文件。如果设备更改 COM 端口号,则必须更改。

这对用户来说不是很友好。因此,我希望能够获得 COM 端口 ID 的列表,并让用户通过其 ID 选择正确的设备。我试过谷歌搜索,但没有太大的成功。

ID 我的意思是如果您检查设备管理器:“COM 端口 ID (COM<#>)”。检查下图中红色标记的文字:

enter image description here

我尝试了以下库:

  • javax.comm - CommPortIdentifier,getPortIdentifiers();
  • jssc - SerialPortList.getPortNames();

但我一直无法找到是否可以获取COM端口ID,因为以上两种方法都只返回COM端口号。有谁知道获取 COM 端口 ID 的方法吗?

最佳答案

我使用 rxtxcomm.jar 和 rxtxSerial.dll 与 Arduino 进行通信。此代码段应为您提供可用端口:

@SuppressWarnings("unchecked")
Enumeration<CommPortIdentifier> portEnum = CommPortIdentifier.getPortIdentifiers();

while (portEnum.hasMoreElements()) {
    CommPortIdentifier currPortId = portEnum.nextElement();
    System.out.println(currPortId.getName() + " - " + currPortId.getCurrentOwner());
}

这是一篇包含更多详细信息的文章:https://blog.henrypoon.com/blog/2010/12/25/installing-rxtx-for-serial-communication-with-java/

关于Java - 获取 COM 端口 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37659670/

相关文章:

java - 获取 "<"和 ">"的 KeyStroke

java - 加载新 Activity 时应用程序崩溃

c# - 收到 readLine 时如何调用函数

windows - 具有最小延迟的串行通信

linux - 是否有读取串行端口的特定功能?

javax.comm : Identify which serial port my GPS device is operating

javax.comm:平台驱动程序类名 = null 检查 javax.comm.properties 中的 'driver' 属性)

java - MappedSuperclass 扩展另一个 MappedSuperclass

java - 将单选按钮选择转换为数据

java - 使用 Install4J 将 javax 复制到 JRE