You misunderstood me. Java is more readily deployable on more platforms than C# is. So while C# may have a lot more benefits than Java, Java still has the higher ground where multi-platform is concerned. Though marginal it may be, C#'s deployability is covering more ground continually, though please remember that this is through mono, and mono is usually a step or so behind Microsofts official implementation.
I'm sure Java has its strong points to, but multi-platform is not one of them.
Mono is a separate implementation from Microsoft's. Though the patents are interchangeable, its more the technical specifications they share with each other in this agreement as opposed to actual implementations [not always but usually the case]. The codebases for Microsofts and Novells Mono are 2 separate implementations based from the same specification.
Mono is consisting of its own CLR (Common Language Runtime [a sort of bytecode JIT]) and its own implementation of the .net Framework. Though the source code is their own implementation and has no Microsoft code in it, it is compatible with Microsofts implementation according to their license agreement.
the Mono project is apart of .NET Framework and is most certainly compatible with other OS's such as Linux and Mac OS X.