Awhile back I wrote a decent sized application to route connections from a farm of modems through to a TCP/IP network address.
Initially I looked for an unencumbered (free) Serial IO library. I tried Sun's, IBM's and RxTx. They were fine for developing the application, and in initial testing, but in production they each proved unstable.
Finally I paid for SerialIO's SerialPort. Converting over was literally an exercise in changing imports, and the library has been absolutely rock solid - I cannot recommend it enough. My application has been running in the field 24/7 for a couple of years now, with not a single problem encountered by multiple customers.
If you start development using SerialPort, they have a better API and I would use it.
If you need cross platform support, Java with SerialPort was the best choice I could find.
Lastly, their licensing is pretty darn reasonable as long as you are not preinstalling software on the equipment for your customer(s).