RXTX is good for COM and LPT ports. USB is extremely difficult; perhaps the easiest way is to create your own C + JNI wrapper for your own device drivers.
Unfortunately, Javax.comm has Sun 2.0 and the latest RXTX - LPT parallel ports are not properly implemented under Win32. The result seems to work fine, but if you try to read from the port it is not possible.