why not use Unity or something like that?
Oh how I've tried!! I thought Unity would be the perfect solution for me (despite the $1500 price tag or the limitations of the Indie version). I tried to duplicate my engine test and benchmarker in it to get a performance comparison and ended up pulling my hair out (seriously, it must have looked like Cas' avatar). There's a pretty steep learning curve involved, and I've discovered that it has more limitations than my own engine work.
I've put in a lot of time learning how to make games with Java and LWJGL. I've also put in substantial time trying to figure out Unity, Ogre3D, Horde3D, a few other game engines, and some C++ alternatives as well. Objective-C (tried to learn it for making iPhone apps) was a nightmare for me; my eyes couldn't focus on the code formatting (seriously!). C++ ended up being more limited than Java due to the need for platform specific libraries (I'm trying to learn SDL, as it's cross-platform, but I'll still be limited to the same audience as Java).
BTW, the problem isn't Java. It's the device manufacturers that refuse to support Java (or other libraries). Hopefully Oracle can bring this around, but as it stands, it's a mess no matter what language you decide to use. If you want to get on XBox, learn C++ and DirectX. If you want iPhone, learn Objective-C and the Apple libraries. If you want Android, learn Java and the Android library. If you want Windows-Linux-Mac, learn C++ with SDL or Java with LWJGL.