查找串口

时间:2014-01-14 18:17:42

标签: java

我搜索了可以代表我所拥有的串口的代码。我找到了这个:

Enumeration pList = CommPortIdentifier.getPortIdentifiers();

// Process the list.CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/tty1");
while (pList.hasMoreElements()) {
  CommPortIdentifier cpi = (CommPortIdentifier) pList.nextElement();

  System.out.print("Port " + cpi.getName() + " ");
  if (cpi.getPortType() == CommPortIdentifier.PORT_SERIAL) {
    System.out.println("is a Serial Port: " + cpi);
  } else if (cpi.getPortType() == CommPortIdentifier.PORT_PARALLEL) {
    System.out.println("is a Parallel Port: " + cpi);
  } else {
    System.out.println("is an Unknown Port: " + cpi);
  }
}

但它不起作用,似乎pList没有任何元素。 也许我的电脑没有任何串口,在这种情况下如何查看?

2 个答案:

答案 0 :(得分:2)

如果您使用的是 RXTX 库,则以下内容应提供您计算机上可用COM端口的列表:

  List<String> list = new ArrayList<>();
  Enumeration thePorts = CommPortIdentifier.getPortIdentifiers();
  while (thePorts.hasMoreElements())
  {
     CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement();
     switch (com.getPortType())
     {
        case CommPortIdentifier.PORT_SERIAL:
           list.add(com.getName());
     }
  }

您可以使用设备管理器检查Windows中的可用COM端口。导航至Ports (COM & LPT)。大多数台式计算机都有COM1可用。其他设备(如USB虚拟COM端口)也将显示在列表中(如果存在)。

RXTX 有非常具体的安装说明。可以找到这些说明here

通常,您必须执行以下操作:

  1. rxtxSerial.dllrxtxParallel.dll复制到您的JRE/bin目录。在Windows中,根据您的计算机,这将是C:\Program Files (x86)\Java\jre7\bin或类似的东西。
  2. 然后,您必须将rxtx JAR文件复制到C:\Program Files (x86)\Java\jre7\lib\ext
  3. 注意:如果您在像Netbeans这样的IDE中运行,则可能必须将这些文件放在JDK/jre下。

答案 1 :(得分:1)

您可以使用jSerialComm库。它是纯Java,不需要额外的原生库。

SerialPort[] ports = SerialPort.getCommPorts();
for (SerialPort port: ports)
    System.out.println(port.getSystemPortName());