我搜索了可以代表我所拥有的串口的代码。我找到了这个:
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没有任何元素。 也许我的电脑没有任何串口,在这种情况下如何查看?
答案 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。
通常,您必须执行以下操作:
rxtxSerial.dll
和rxtxParallel.dll
复制到您的JRE/bin
目录。在Windows中,根据您的计算机,这将是C:\Program Files (x86)\Java\jre7\bin
或类似的东西。 rxtx
JAR文件复制到C:\Program Files (x86)\Java\jre7\lib\ext
。 注意:如果您在像Netbeans这样的IDE中运行,则可能必须将这些文件放在JDK/jre
下。
答案 1 :(得分:1)
您可以使用jSerialComm库。它是纯Java,不需要额外的原生库。
SerialPort[] ports = SerialPort.getCommPorts();
for (SerialPort port: ports)
System.out.println(port.getSystemPortName());