1. Security vulnerabilities
2. The Ask.com toolbar
3. Oracle abandoning Java EE
... which is extremely frustrating because...
1. Virtually all of the "security vulnerabilities" deal with the browser plugin for using applets, which hasn't been widely used in 15 years
2. The toolbar malware, while stupid beyond measure, only applies to the consumer Java installer, which nobody installs anymore due to item #1 above.
3. Java EE is legacy tech. While deeply entrenched, most of the work out there for it today consists of maintenance or migration to more service-friendly approaches like Spring or Dropwizard.
Java is certainly not perfect. It's also long in the tooth, and is associated with "the enterprise", and so it's not seen as "sexy" by young developers. But for business software, large-scale data processing, and web/REST backends, I've yet to find anything on the horizon that seriously competes with it.
Every year I get bored and go exploring a new alternative language in side projects. Every year I come back, more appreciative of what I have. Python/Ruby/Node have their beginner-friendly charms, but are limited by the lack of type checking and/or chaotic ecosystems. Golang seems really promising, but has a long way to go. C# seems like the most credible challenger for business systems, but the .NET Core ecosystem is probably still years away from being where Java was in 2005.
I don't mind discussing Java's shortcomings. But I'm tired of hearing about irrelevant shortcomings such as applets and Java EE. Because that's just a way to keep a "language war" going without having to point at a serious alternative.