Transpiladores de códigos de bytes
Grasshopper puede tomar un código de bytes CLR y transpilarlo para JVM. Destinado principalmente a aplicaciones web, no proporciona, por ejemplo, implementación JVM de clases de Windows Forms. Sin embargo, parece algo anticuado. La web habla de ASP.NET 2.0, Visual Studio 2008, etc. Primero mencionado por @alex
XMLVM puede tomar el código de bytes CLR o JVM como entrada y producirlo como salida. Además, puede generar JavaScript u Objective-C. Aún no hay lanzamientos, solo Subversion. "Versión de desarrollo experimental que no se utilizará en un entorno de producción".
IKVM va en la otra dirección que OP quiere. Proporciona una implementación de JVM que se ejecuta en CLR, un transpilador de código de bytes de JVM a CLR y un generador de código auxiliar de método de biblioteca CLR para Java. http://www.ikvm.net/uses.html Mencionado por @Jon Skeet
RPC
¿Por qué no tener CLR y JVM en paralelo y hacer que la comunicación sea lo más fluida posible? Esto no es lo que quiere el OP, pero algunas otras respuestas ya están bastante fuera de tema de diferentes maneras, así que cubrámoslo.
RabbitMQ , tiene una opción gratuita, es un servidor RPC escrito en Erlang con bibliotecas API para C #, Java y más.
jnBridge , la licencia puede resultar demasiado cara para algunos posibles usuarios.
gRPC y las bibliotecas RPC modernas similares ofrecen un amplio soporte de idiomas, generación de código para bibliotecas cliente en estos idiomas, formato de cable independiente del idioma para datos, funciones avanzadas como cancelación de llamadas en cascada, etc.
Lenguajes de programación
Escribe una vez, corre por todas partes;)
Haxe , compila en C # / CLR, Java / JVM, Javascript, Flash, Python,… Proporciona mecanismos de interoperabilidad para cada uno de los lenguajes de destino. Puede considerarse como un sucesor de ActionScript3 hasta cierto punto. Parece algo bastante sólido, con al menos una empresa dependiendo de ello. Mucho más confiable que Stab, mencionado a continuación.
Stab trae algunas características de C # e interoperabilidad de Java. No es muy útil, obtienes algunas características de C #, pero con lo que interactúas es el código Java que no las usa. https://softwareengineering.stackexchange.com/a/132080/45826 El lenguaje es relativamente oscuro, posiblemente abandonado, con pocas promesas de mejorar. Primero mencionado aquí por @Vns.
Ráfaga de aire fresco para la plataforma JVM;)
Scala , Kotlin , y otros, son lenguajes bastante agradables que se ejecutan sobre JVM y ofrecen características que un programador de C # puede perder en Java. Especialmente Kotlin se siente como una alternativa razonable a C # en el mundo de JVM. Scala puede ser un lenguaje demasiado extenso para que un programador se sienta cómodo en poco tiempo.
Mononucleosis infecciosa
Sin duda, esa también es una opción. ¿Por qué transpilar a JVM si Mono puede ejecutarlo como está? Primero mencionado por @ferhrosa
NUEVA YORK - 12 de noviembre de 2014 - El miércoles, Microsoft Corp. reforzó su compromiso con las experiencias de desarrolladores multiplataforma mediante el código abierto de la pila .NET completa del lado del servidor y la expansión de .NET para que se ejecute en las plataformas Linux y Mac OS.
Según este comunicado de prensa del que proviene la cita, Visual Studio 2015 agregará Linux / Mono como plataforma compatible.
Este es un blog escrito por la gente del proyecto Mono sobre él, desde el otro lado: .NET Source Code Integration (noviembre de 2014).
.NET Core
Una versión multiplataforma de Windows / Linux de (parte de) .Net gobernada por Microsoft. 'nuff dijo https://github.com/dotnet/core .
Conclusión
Ahora sería necesario probar estas herramientas / marcos y ver cuánta fricción hay. El OP quiere escribir en C # para la JVM, que en realidad puede funcionar bastante bien con Grasshopper.
Hacer esto con el objetivo de mezclar las bibliotecas mundiales de C # y Java en una única base de código puede no funcionar tan bien.
Fuentes
http://blog.pluralsight.com/new-course-making-java-and-c-work-together-jvm-and-net-clr-interop