0

我正在使用 Java 框架,我需要检查空闲的串行 COM 端口(未被任何其他应用程序打开)。是否可以在 Java 中进行检查?一个警告是我不能向应用程序添加任何包,我只能使用标准 Java 类。

有任何想法吗?

4

1 回答 1

0

这可以使用 JDK 1.6.0_21 并且javax.comm由 Sun/Oracle 提供,但我不知道它是否符合您将标准 java 类定义为单独安装的定义。

import java.util.Enumeration;
import javax.comm.CommPortIdentifier;


public class PortList {
  public static void main(String[] args) {
    Enumeration<?> ports = CommPortIdentifier.getPortIdentifiers();
    StringBuffer buffer =  new StringBuffer("Ports:\n");
    while (ports.hasMoreElements()) {
      CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
      String type;
      switch (port.getPortType()) {
      case CommPortIdentifier.PORT_PARALLEL:
        type = "Parallel";
        break;
      case CommPortIdentifier.PORT_SERIAL:
        type = "Serial";
        break;
      default: /// Shouldn't happen
        type = "Unknown";
        break;
      }
      buffer.append(String.format("%s : %s Owner: %s\n",port.getName(),type,port.getCurrentOwner()));

    }
    System.out.println(buffer.toString());
  }
}

关键方法/类是 CommPortIdentifier.getPortIdentifiers()

于 2012-08-16T15:46:28.360 回答