I think javatutorial from sun's web site is enough for learn java from scratch. It contains how to program simple java program like hello world. Give you concept of Object Oriented Programming, then it tels you how to build a UI using swing. and at the end of tutorial they give you somethings smell's Enterprise programming like RMI (Remote Method Invocation). I Learn java from sun java tutorial and still i used it when i need some basic concept that i forgot.