I haven't had a lot of luck with JSR80 or JUSB; they seem to be OS dependent at least from the time I spent trying to make them work; and even in that experiment you had to have a certain Linux kernel and USB service to make them work properly. Not sure about windows; maybe there is something more stable.
In regard to RS232/serial, I posted
this last week. Hopefully you will find something useful.
I use serial devices all the time because the industry I work in still uses the protocol as standard. As i said above, I've dipped my foot into USB and it was akin to hitting myself in the head with a hammer for 3 or 4 days with no results. I have read other languages like Python (C++?) are better at dealing with USB; ie they have built in/approved APIs that allow you to spend your time developing rather than trying to get the API itself working.
My frank opinion :
You are familiar with how RS232 works from your previous work. The Java SE Socket classes are rock solid and all kinds of examples exists to help you when you get stuck. Drop the 99 bucks for a serial to Ethernet server I linked in the post and assign it an IP. Once you do that Java will communicate using a Socket (which its really good at) and your device will communicate via Serial (Rs232, 484 whatever; just make sure you get the correct serial server) which it sounds like your past devices are good at.
In this model, everyone is good at everything, and most importantly your application and device will be portable. Any OS that has a JVM and can communicate via TCP/IP will run your stuff like a champ.
Thats another big drawback from what I have seen (aside from the overhead of getting the API working in the first place). Assuming you get the API working correctly on your chosen OS, USB or a COM library puts you in a position where you absolutely have to use the OS that you used to develop the application on. As an example, I develop in Linux and most of my deployments are on a Windows flavor; I shudder to think of having to try and get everyone to play nice together when deploying using USB or a COM library.
Not saying it can't be done; I am sure if one was persistent enough, USB or a COM library would work in both environments. Whatever path you choose, I wish you luck. It sounds like a fun project!