There is also this site where they expect you to buy a subscription, but what I have seen of their videos hasn't shown me where the money goes. You can try the free videos and use your own judgment, but I wouldn't recommend buying anything. Java isn't a complex technical thing that you can't learn without paying someone to teach you. http://www.educator.com/computer-science/java/hillstrom/
I agree with @bguild. I'm still in basic training, but I'm not going to go take any e-courses or whatever. There's a ton of sites that have good information, tutorials, and/or example code for free. Personally, I also found some Java books at garage sales for around $0.50-$2.00. They may be a little dated, but the fundamentals are still applicable. Another way is to try to run code you see on this forum and truly understand what is happening in it. If you can understand the specifics of each program you play with, it will help you write your own unique code.
If you learn yourself, it will take long time. So better you can join a best java training institute. Before joining into any institute, you have enquire about the quality and syllabus from that institute.