Mark,
As far as I know, none of the packages is particularly portable across O/S platforms.
This page will give you a general indication of the difficulties involved in Serial and Parallel I/O under Java.
The problem with "portable" packages is that most programmers are focused on one class of system or other. PC programmers are generally unconcerned with writing code for Linux systems, BEOS systems, or telephones.
So - what you need to do is understand your requirements - what platforms are you targeting with your application? What capabilities do you really need? What are you actually trying to accomplish?
Once you have your requirements, then you can start surveying the available packages. If you are lucky, there is a single package, which gives you everything you need on all systems. Unfortunately, I don't think you're going to find one for Serial-I/O or Parallel-I/O. If you can't find a single package, look for a set of packages that give you what you need on your various target platforms.
In the later case, you will have to write a meta-package that conditionally loads lower-level packages depending on the operating system it is running on. Essentially you will have to define your own abstract I/O system and then dispatch from it to the system you loaded.
Sorry I can't give you names of packages to solve your problems. I do not know what capabilities you need, or the systems you need your application to work on. However,
THIS is a Yahoo search that might be a good starting point.
Good Luck!
Oralloy