Even though the JVM is cross-platform, there are be differences in
- behaviour;
- performance;
- stability.
Some of them are quite clear, as in the heap size limitation on 32bit. Some of them are not, such as the increased tuning hooks on Solaris.
I'd like to know which platforms ( OS, CPU architecture ) you're running your java apps on, and especially why.
amd64 debian. i feel at home with it [ yes i do know it's not expected answer, still let it count for statistics ]. in fact i never considered moving it under windows or even testing performance there, on the other hand java part is not a bottleneck for me.
As of RHEL/Centos 5.3, you can install the OpenJDK 6 release that has been validated against Sun's TCK for Java 6. For ease of maintenance, cost, and performance (it's largely built of the exact same sources as Sun's own JVM) it's very hard to beat.
Favorite platform is Sparc Solaris, but x64 Solaris is almost as good. :-) Stability, speed, just no problems at all.
We're running our Java-based web applications almost exclusively on X86-64 and Windows Server (2003 or 2008). The reason for the OS choice is, that almost all of our customers prefer Windows servers and don't have enough experience to support *nix servers.
We haven't had any major problems running Java server apps with Windows, but most of our developers run Linux themselves.
We go with Solaris on Sparc for servers (good HW, good performance, best OS), for workstations usually Windows because of various special devices connected to our system (automated scales, label printers, ...).
Development is completely agnostic (barring above special devices), done mainly on OS X and Windows.
Linux is not on the picture as it changes too quickly without regard for compatibility and we need to have systems which will be supported for 10 years.
I use :
Sun Solaris and RHEL