I personally detest Java. I get the role it fills (cross platform scalability), and if properly implemented it can be seamless. Most of the time though embedded Java components are obtrusive and firing off multiple security alerts, and the Java Runtime has gone from lax security to paranoid security, so everything requires confirmations and exceptions. I also find some poorly developed Java apps don't know how to handle a more recent JRE, and just assume it must be out of date, and will refuse to execute.
For the last reason I have to maintain a virtual machine with a really old version of Internet Explorer and an equally old version of the JRE in order to interact with some of the embedded systems on wide format printers we use at work. It's a PITA.