I have been involved with programming as a hobby for around five years and know the field quite well. Java seems to be one of the major demands here in Estonia and since I wish to find a job as a programmer in the near future, I figured I might as well pick it up.
However, I know very little about Java development. I know C++ and C# and quite a few other languages, so the Java language itself will definitely not be a problem but I know nothing of the SDKs and IDEs used with Java.
What are the IDEs? Free ones? Pay ones? What are good and what are bad?
What SDK should one use for developing Java software for cellphones?
What are the main libraries used with Java? For networking, xml, graphics (is there a DirectX library/wrapper for Java or something similar?) and others?
What about GUI libraries? I seem remember hearing that Java was not that good at windowed UIs - is that true?
How is debugging done? What are the best debuggers?
What more should I know? Any especially tricky aspects about the language itself?