There's no reason at all why you shouldn't use Java to develope platform specific games. Although Java was designed with platform independence in mind you don't always have to use it that way which is why JNI exists. To be honest, having platform independent games isn't really that important considering most (but not all) game players use Windows.
As to the 'why not just use C++' argument, Java does have some advantages over C++ in terms of better design features and improved productivity. Check this article out if you are interested in the benefits:
Why Java can be used for games Developement time using Java is reduced by quite a bit and you get a lot less headaches with it.
Writing a wrapper around DirectX would mean that you could knock out games a lot quicker than you could in C++ but they might run a little slower depending on the type of game you are writing and how good a coder you are. A lot of people go on about speed and optimisation when they are only writing little 2D games that even the lowest end computers can handle with ease. Plus when compiled to native code Java doesn't run that much slower than C++ code (and sometimes can even run faster!) and it is catching up all the time.
BTW, Visual J++ does produce an .exe but unfortunately it doesn't compiler to native code. It just packs the class files into the exe. The program still runs on a MS JVM. Why they didn't include a native code compiler is beyond me seeing as if you are using it to write Windows programs then they are going to be platform specific anyway. Another IDE that includes a native code compiler is VisualCafe but it's pretty expensive although very good.
Edited by - Kaijin on April 20, 2001 9:24:47 PM