I am aiming to develop J2EE web apps for clients, and am wondering what OSS operating systems you all have had the best luck with? Windows is expensive, RHEL, SUSE Enterprise Linux, and Solaris are free to implement but have support options; BSDs are good servers but not much on the paid support side if the client wishes to have that kind of safety net. I just want to maybe poll for developers so I can develop on the same OS now and learn it inside and out ahead of time.
Develop on any OS (I don't "develop" on Solaris even if this is the targeted platform), just use the same OS as your client at some point (e.g. UAT or pre-prod). If you have to make a recommendation for your customers for production platforms, AIX, HP-UX, Solaris, RHEL, SUSE Enterprise, Ubuntu Server, Cent OS, Debian are all decent options and the final choice may depend on 1. the hardware 2. the available skills.
With my current customer we are required to develop on Windows (virtualized, running on client owned servers) and deploy on AIX. With other customers I develop on Ubuntu and deploy to whatever OS the customer requires or already have. Just be sure to have a staging server mirroring the production architecture as close as possible and test there.
It's fairly common to develop on Windows machine (because they're cheap and MS is standard for enterprisey office apps), but deploy a J2EE application on some *nix server. Which particular flavor of your *nix server will depend on your database and your application server. E.g. Oracle has a tendency to perform better on Sun servers than on Linux servers.
As for your skills, you will do fine learning any flavor of *Nix plus having a decent degree of comfort with Windows.
One of the advantages of J2EE is that it's portable (if it wasn't, you wouldn't be asking this question). Develop on whatever you prefer to work on, but make sure it runs on windows server and a bunch of Linux distros as a minimum. It's pretty easy to have a few VMs for testing.
If your client has a particular preference, let them choose. If they actively choose BSD, it's likely they have some experience in it so unless you want to support it, you can leave it to them.
My personal preference is for Debian: I just found it much easier to administer than RHEL, but I'm biased since I run Debian on my workstation. Not a good option if they want external support.
I've been developing on Mac OS and deploying on Debian. I find both environments ideal for their respective duties. I could stand to do more work in Debian in order to get more versed in it, but I have a hard time dealing with Linux desktop environments.. Paying for linux is silly, and I suppose I'm not qualified to have an opinion on whether Windows is worth considering... but I wouldn't consider it.