IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework. It includes the following components: A Java Virtual Machine implemented in .NET, A .NET implementation of the Java class libraries and Tools that enable Java and .NET interoperability.
Although this will probably outrage Java purists, it's not really that surprising. C#/.NET have been slowly edging into the same space as Java for many years and in my opinion, Microsoft's team have the best of it because Java has more baggage that it can't shed and C# has LINQ which is terrific.
That said I think Java is still an excellent language, certainly it is still the most popular of the two and my experiences with it have been very positive. If the comparison of the two languages interests you, take a look at the Wikipedia article that compares C# and Java.
IKVM can be used as a drop in replacement for Java in many cases. There's instructions on the site on how to do that plus a converter to convert Java bytecode to .NET IL, so you can take a compiled Java library and use it in your .NET application. It's an interesting project.
- Permanent Link added to the new category Cross Platform C#