Woops, it looks like I started something quite nasty here with this thread. I mean to make a Java vs C# war, but I guess there was no helping it.
The ecosystem. The worst thing about Java and best thing about C#.
C#: 90/10 writing code Vs. fighting with the tools/environment/library
Is that cheating? Likely. But it is still true. C# isn't a very much better language than Java. But the tools/environment/documentation is terrible in Java.
I think this code example sums up both C# and Java perfectly:
if(args == "test")
My opinion is quite the opposite on this one. Java's weaknesses are wholly on the language itself, not the libraries and definitely not the JVM.
Java it's the vast Java ecosystem is probably one of it's biggest assets. Nothing really compares in the .NET world to JBoss, Spring and Apache. Hundreds or even thousands of high quality FOSS libraries from these sources.
I know Microsoft is trying to change that with their CodePlex ("Outercurve?") Foundation, but there is really is no comparison here.
And that's really just comparing the FOSS ecosystem, and not the products from the Java powerhouses like IBM, Oracle, TIBCO, SAP, etc.