Based on your post, I assume that you are new to both Java and programming. On that basis, the Sams publications you saw like "Java 2 in 24 days" are good. After that, try the O'Reilly books like "Learning Java" which are more complete but assume some basic programming knowledge. Save money - buy used books.
Sun offers an extensive online set of Java materials. You must learn to use these as they are by definition the authoritative canon but the teaching is not as good.
There are all sorts of courses available, both online and in person. Check out your local colleges, they offer the best value.
Another very important learning technique is to read good code written by the pros. Every language has an idiom that goes beyond the language rules and covers capitalization, naming, indentation, comments, etc. There are also legal elements of any language that most programmers steer clear of. Reading and understanding lots of good code imprints the correct
patterns in your head and fixes any gaps in your language knowledge. Your first job will probably involve digging into a large body of existing code to make small changes. Also, you will be expected to write code that others can easily follow. I have found that the O'Reilly books have excellent code in their illustrations. There are also "pattern books" of exemplary Java code.
One caveat: While almost anyone can learn Java, not everyone has the natural talent to be a good computer programmer. If this stuff doesn't come easily to you, ask yourself if you want to spend your life being the last one hired and the first one fired. There is a big difference between knowing the Java language well and naturally visualizing real world problems as Java solutions.
Which brings up the subject of jobs. In this economy, the companies offering the few entry-level programming jobs can insist on a computer science degree. However, once you are in a company, you can usually manage your career into programming. So take whatever IT job is offered.
If the programmer hiring situation improves, you will have something on your resume to help get the next job. If not,
you should eventually be able to transfer into programming within your company.
Good luck and hang in there - it's a great way to make a living!