从 Java 中的 VendorID、ProductID 自动检测串行 COM 端口

Auto detecting serial COM port from VendorID, ProductID in Java

我在java11中有一个程序,使用串行COM端口通过USB控制一些硬件。 我想在插入设备时通过 VenderIDProductID 自动检测硬件。

我可以通过Linux命令获取VendorID和ProductID:

udevadm info -a -n /dev/ttyACM0

  looking at parent device '/devices/pci0000:00/0000:00:01.1/0000:01:00.0/usb1/1-5':
    KERNELS=="1-5"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{speed}=="12"
    ATTRS{avoid_reset_quirk}=="0"
    ...
    ...
    ATTRS{idVendor}=="0c2e"
    ATTRS{idProduct}=="0bea"
    ...

是否可以通过 Linux 和 Windows 中的 Java 11 从 VendorID 和 ProductID 获取 COM 端口 /dev/ttyACM0? 非常感谢。

USB 抽象库 libusbp comes with an example program named lsport 列出了所有 USB 设备及其拥有的串行端口。您可以编译该程序并从您的 Java 程序中 运行 它,或者只是研究它的工作原理并在 Java.

中重新实现相同的东西

对于Linux,另一个想法是查看/dev/serial/by-id中的符号链接。