There is a sticky thread by me just above this one that directly answers this question (and the same question for C++) with detail and a wide range of resources.
Being as it was written a long time ago the versions of Java that you need to download have obviously been updated by now but the principal of everything is the same.
Having completed several units on Java in the first and second years of my degree I would also add to that post to say a good book on Data Structures and Algorithms (in Java) is essential if you plan to teach yourself. It will explain the reason why everything is done not just how to do it. (Teach you to program, regardless of language). For this I recommend "Data Structures and Algorithms in Java 4th edition" by Goodrich and Tamassia.
(It is much cheaper in the UK - I am unsure where you are.)
Hope that is beneficial too you.