Retrieve a List of Available Serial Ports

Here’s a nice little function that retrieves a list of the available serial ports on your system. Note that this function uses Java’s Communications API, also known as javax.comm, which must be installed before the code will compile or run. Although this function shows how easy it is to use the Java Communications API, it also reveals that the API is not quite as smart as you might expect. For example, my laptop has three COM ports–COM1, COM2, and COM4–but this code returns a vector containing the names COM1, COM2, COM3, and COM4. The COM3 is a phantom port name that will throw a NoSuchPortException if passed to CommPortIdentifier.getPortIdentifier. The moral of the story? Write once, test everywhere. By the way, you can alter this function to return a list of available parallel ports simply by changing “PORT_SERIAL” to “PORT_PARALLEL”.

 	/**	Returns a vector where each element of the vector is a string	containing the name of a serial port in the system.	*/	private Vector getSerialPortNames()	{		CommPortIdentifier portId;		Enumeration en = CommPortIdentifier.getPortIdentifiers();		Vector listData = new Vector(8);		// Walk through the list of port identifiers and, if it		// is a serial port, add its name to the list.		while (en.hasMoreElements())		{			portId = (CommPortIdentifier) en.nextElement();			if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)			{				listData.addElement(portId.getName());			}		}		return listData;	}
Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: