Interesting. That hasn't been my experience at all. I work at a major investement bank and the majority of the middle tier of our trading systems are now written in Java. Have been for years. I'm not talking web based apps either. These days the back ends of a lot of the trading systems are a collection of Java apps running on Linux servers (usuall Red Hat) using using pub/sub messaging for communication and jdbc to connect to Oracle, Sybase or DB2.
I've been doing this for a while (10+ years) and went through the progression of doing everything in C, then C++, then Java. When told to start using Java to say I was skeptical would be an understatement. But over the years Java has become great for this purpose. We experience no random memory growth (leaked memory) from our processes. We leave them up for weeks on end processing large volumes of trades with no issues. Since we run our programs for long periods of time startup time isn't an issue and really doesn't take that long anymore anyway. The time saved coding in Java instead of C++ is also beneficial. No more having to learn every vendor's version of their C++ threading library and trying to stitch it all together in one app. Too many times would I have to write an app using serveral vedor libs that I would need to modify and they all implemented threading, logging, etc. their own way. So as you jump from one file to another there is no consistency on how things are being done. Maintenance nightmare and the learning curve is huge for new members of the team.
Plus, as a manager trying to hire competent C++ programmers out of college is almost impossible. Seems like many schools just don't teach it anymore. So if HR only gives you a junior programmer budget and you need a C++ programmer you end up getting the guy nobody else would hire.
Disclaimer: Above experience anecdotal. I'm sure there are people out there who have had really bad experiences.