One cool thing about C# (and the .NET platform in general) is the ability to translate your code into another programming language (aside from some possibly incompatible differences in programming languages). So there's really not much stopping anyone from writing a C# to Java converter that would handle a decent chunk of the porting (so you wouldn't lose any software), and then you could just fix up the minor stuff yourself.
For an example, check out the .NET reflector. By default, it lets you convert between C#, VB.NET, (Managed) C++, and CIL. You can also get plugins for IronPython and so forth.
http://www.red-gate.com/products/reflector/ (it's free)