There are two ways to learn Java (or any other programming language, really).
One is to sit down with a project in mind and a good book on Java aimed at your level of programming skill, and to keep trying it until you get it right.
The other is to take a course in Java
Both are a fair bit of work.
And one thing you need to remember, if this is your first programming language, is that you don’t just need to learn Java, but you also need to learn to program. Among non-programmers there seems to be a perception that learning the language is the hard part; that’s simply not true. The hard part is learning to think analytically, both when you’re writing the program in the first place and when you’re debugging it.
So if you go either route, you need to get a course or a book that’s aimed at your particular level. This will be different if you’ve been programming in C++ and Python for years than if you are a total novice who’s never written a line of code before.
Unfortunately I can’t recommend any specific Java books, because I don’t do a whole lot of Java work. But I expect some of the people here can. If you go the course route, and you want it for work, you either need a college degree or Sun certification; the number of people incorrectly claiming Java expertise with those credentials is so high that you won’t even get looked at without them.