IMHO, I think that with the great engine technology that is written in C++ (Unreal Engine 3, Natural Motion, Havok, Ageia, Kynogon, Trinigy, etc.), Java has no way to compete (make it into the mainstream) unless we (Java game developers) create great engines.
That implies that you can do what most commercial games companies have decided they cannot, even with up to 25 full-time staff devoted to doing so. There's several reasons why Unreal3 is appearing in so very many games right now, one of which is that most studios realised they cannot compete directly with it.
The story in the games industry is always the same: it's the games that prove the tech, not the other way around. For instance, many people believed Renderware was unusable for a major game and refused to use it despite Burnout's showing what technically could be done ... until GTA3 came out.