From Rxtx
This code snippet shows how to iretrive the available comms ports on your computer. A CommPort is available if it is not being used by another application:
/**
* @return A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used.
*/
public static HashSet getAvailableSerialPorts() {
HashSet h = new HashSet();
Enumeration thePorts = CommPortIdentifier.getPortIdentifiers();
while (thePorts.hasMoreElements()) {
CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement();
switch (com.getPortType()) {
case CommPortIdentifier.PORT_SERIAL:
try {
CommPort thePort = com.open("CommUtil", 50);
thePort.close();
h.add(com);
} catch (PortInUseException e) {
if (log.isInfoEnabled()) {
log.info("Port, " + com.getName() + ", is in use.");
}
} catch (Exception e) {
if (log.isErrorEnabled()) {
log.error("Failed to open port " + com.getName(), e);
}
}
}
}
return h;
}