And then you are in segmentation fault hell.
Sun had to rewrite the entire JVM in 2003 with a new memory model, later adopted in C++11 (and still the current C++ memory model) which failed for C++ because this model only works well if you have a VM with GC.
C# is just a plain Java copy after Microsoft got sued for J++ in 1998.
All other languages have problems with concurrency and threads that make them unsuitable for anything really.
So again, Java is the ONLY language/VM you can use on the server and on the client you still want a combination of C(++) and Java for performance + ease of use (avoid segmentation fault hell that no person should suffer).
If you saw bad Java code then that is not the fault of Java.