Java seems to have more libraries for it, but it feels disorganized as a language to me. c# is my preference by far on Windows. There are lots of niceties that c# has for UI development such as WPF and even Windows forms. If you are going for linux though, maybe java is the better way to go. I am not sure of how much support mono has for UI development.
Edit: I should say that what I mean by disorganized is that there is always a lot of choices for any one thing and that it makes it difficult to decide how to proceed (at least for me).