I had a decent start with The Complete Reference: Java 2 by Herbert Schildt... But somewhere, Herb has some misconceptions. (As quoted by someone over here in one of my previous threads. Probably it was jwenting).. That apart, it is a good starting point, especially if you are having a transition from C++ to Java. It emphasizes on all the similiarities and dissimiliarities between the two.
Hmm, that's actually good advice, but if by that he meant an open source product that's meant to be used (so not just for the entertainment of coding), than you should make sure you have something to offer to that community.
As a beginner, you'll be more of a pain to them than you'll be a gain... A project like that is great for learning, that is true, but the community will appreciate it more when you can give something meaningful back to them too.
However, this *can* be your goal. If you work hard enough you'll soon be able to be a part of some community and make a difference. Good luck on your trip. :)