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/).
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.
Fresh book recommendations delivered straight to your inbox every Thursday.