I've got some time on my hands, so be prepared for a rant:
Java has two main advantages: it's cross-platform and has an extremely elegant interface. I'll elaborate.
Java will work on any platform for which a JVM exists. This functionality is not really used on full-featured computers; as previous posters have pointed out, you will not found many practical Java application for use on a PC or Mac. There's a reason for this. These are mature and full-featured sytems with their own ways for devloping for them and using a completely new technology would not work well; as well as all old apps becoming useless the technology would become tied to Java.
But for low-cost consumer electronics, many of which go through several designs in a short time using a consistent interface is ideal. And Java is indeed used here. Look into any cellphone that offers fairly sophisticated apps and you'll find it's powered by Java.
The fact that Java works on regular computers is an advantage here too. You can learn Java from the comfort of your own machine, and then, with hardly any adaptation, use your skills on programming digital devices. What's more, you can develop and test these apps on a PC and then simply transfer them to the device.
(Obviously it's not all like that. Some Java features work differently in different implementations. But the Java documentation will always let you know if that's the case. And profiling - checking that the app is not overusing resources - obviously has to be done on the target device.)
The second feature of Java is its clean interface. Java is more than just a language. It provides an immense array of classes which you can use to build (literally) an application. These classes are organised in an extremely organised and orthogonal manner, and present an easy yet useful to the user. Try creating a window using the Windows API, and you'll appreciate what I mean.
There's more, but this an area in which I'm not talking from experience. That's servers. Java has (this I know) an extremely advanced yet easy-to-use (like most of Java) remote and security architecture. Apparently its used a lot in the server world. But find out more about this.
So what's the downside. Well, Java programming can take some getting used to. Don't be fooled by its similarity to C/++; if you're coming from C/++ ther are a lot of tricks you'll have to unlearn. Java insists on one way of doing almost everything. The fact that everything must be a class is one example.
Another one is control. The way Java manages to simplify all these programming tasks while still allowing to do serious programming is by taking away control. In C/++ you can follow every memory reference in your program if you so wish. Java just says: tell us what you want to and we'll do it.
For these reasons some people get fairly apoplectic about Java. Ignore them. Programming is not a religion. If Java is good for what you want, use it. If C++ is more to the point use that. If sometimes this is good and sometimes that, use each as appropriate.
You mentioned that you spent a long time learning the concepts of Java programming. That wasn't time wasted. I know many people who can write an app in Java that works but are wasting Java's powerful (if limiting) capabilities. Java is a technology; not just a language. I do agree, though, that after it's time to stop learning and start programming. You can pick up the language itself in weeks.
Finally, get the documentation. It will be your best freind as you program in Java. It is one of the most well-written documentations for any technology and, because it comes from Sun, is guaranteed to be accurate. And... it's absolutely free.