why java? because you have to learn the basics. So better learn the pain-in-the-ass-way as your program basics, then you will understand why ruby is better ;) because if you learn ruby first, you dont know why it is better than other program languages.
Another good introductory text is Head First Java (http://www.amazon.com/Head-First-Java-2nd-Edition/dp/0596009...).
In terms of frameworks, I would recommend checking out Play! (http://www.playframework.org/) for web applications. Spring is a bit more enterprise-y, it is also a good option (http://www.springsource.com/).