When NOT to use Java
1. Development of operating system internals is require
2. Heavy operating system API interactions
3. Performance at a level of internal database agents is required
4. Customer has some prejudices against Java or for some other language
5. Big code footprint is not acceptable
6. Customer has no internal support in place to maintain a Java solution
7. Microsoft DCOM environment
8. Large, complex GUI
9. Real time application where meeting time budgets is critical
10. Multimedia software
Source I guess this was writen long back and Java has passed many of above metion so-called limitations now.