I always select the SerialPort API over javax.comm.SerialPort whenever I have a choice. The javax.comm.SerialPort API is difficult to setup and to use, especially having to deal with the silly properties file. In addition (or should I say, in subtraction) javax.comm.SerialPort does not provide a proper transmit timeout feature, so threads have the potential of lockup when transmitting.