Transpilateurs Bytecode
Grasshopper peut prendre un bytecode CLR et le transpiler pour JVM. Destiné principalement aux applications Web, il ne fournit par exemple pas d'implémentation JVM des classes Windows Forms. Cela semble un peu daté, cependant. Le Web parle d'ASP.NET 2.0, de Visual Studio 2008 et ainsi de suite. Mentionné pour la première fois par @alex
XMLVM peut prendre le bytecode CLR ou JVM comme entrée et produire l'un ou l'autre comme sortie. De plus, il peut générer du Javascript ou Objective-C. Pas encore de versions, seulement Subversion. "Version de développement expérimental qui ne doit pas être utilisée dans un environnement de production."
IKVM va dans l'autre sens que ce que souhaite OP. Il fournit une implémentation JVM exécutée sur CLR, un transpilateur de bytecode JVM vers CLR et un générateur de stub de méthode de bibliothèque CLR pour Java. http://www.ikvm.net/uses.html Mentionné par @Jon Skeet
RPC
Pourquoi ne pas faire fonctionner le CLR et la JVM en parallèle et rendre la communication aussi fluide que possible? Ce n'est pas ce que veut le PO, mais certaines autres réponses sont déjà assez hors sujet de différentes manières, alors couvrons-le.
RabbitMQ , a une option gratuite, c'est un serveur RPC écrit en Erlang avec des bibliothèques d'API pour C #, Java et plus.
jnBridge , la licence peut être trop chère pour certains utilisateurs potentiels.
gRPC et les bibliothèques RPC modernes similaires offrent une large prise en charge des langues, la génération de code pour les bibliothèques clientes dans ces langues, un format filaire indépendant du langage pour les données, des fonctionnalités avancées telles que l'annulation d'appel en cascade, etc.
Langages de programmation
Écrivez une fois, courez partout;)
Haxe , compile en C # / CLR, Java / JVM, Javascript, Flash, Python,… Fournit des mécanismes d'interopérabilité pour chacun des langages cibles. Peut être considéré comme un successeur d'ActionScript3 dans une certaine mesure. Cela semble assez solide, avec au moins une entreprise en dépend. Beaucoup plus digne de confiance que Stab, mentionné ensuite.
Stab apporte des fonctionnalités C # et une interopérabilité Java. Pas très utile, vous obtenez des fonctionnalités C #, mais ce avec quoi vous interagissez, c'est du code Java qui ne les utilise pas. https://softwareengineering.stackexchange.com/a/132080/45826 Le langage est relativement obscur, peut-être abandonné, avec peu de promesses de devenir meilleur. Mentionné pour la première fois ici par @Vns.
Bouffée d'air frais pour la plateforme JVM;)
Scala , Kotlin , d'autres, sont des langages assez sympas fonctionnant sur JVM qui apportent des fonctionnalités qu'un programmeur C # peut manquer en Java. Surtout Kotlin se sent comme une alternative raisonnable à C # dans le monde JVM. Scala est peut-être un langage un peu trop volumineux pour qu'un programmeur se sente à l'aise en peu de temps.
Mono
C'est certainement une option aussi. Pourquoi transpiler vers JVM si Mono peut l'exécuter tel quel. Mentionné pour la première fois par @ferhrosa
NEW YORK - 12 novembre 2014 - Mercredi, Microsoft Corp. a renforcé son engagement en faveur des expériences de développement multiplateformes en ouvrant l'approvisionnement de la pile complète .NET côté serveur et en étendant .NET pour fonctionner sur les plates-formes Linux et Mac OS.
Selon ce communiqué de presse dont provient la citation, Visual Studio 2015 ajoutera Linux / Mono en tant que plate-forme prise en charge.
Ceci est un blog écrit par les gens du projet Mono à ce sujet, de l'autre côté: .NET Source Code Integration (novembre 2014).
.NET Core
Une version multiplateforme Windows / Linux de (certains de) .Net régie par Microsoft. 'nuff a déclaré https://github.com/dotnet/core .
Conclusion
Il serait maintenant nécessaire d'essayer ces outils / cadres et de voir combien il y a de friction. L'OP veut écrire en C # pour la JVM, ce qui peut en fait fonctionner assez bien avec Grasshopper.
Faire cela dans le but de mélanger les bibliothèques du monde C # et Java dans une seule base de code peut ne pas fonctionner aussi bien.
Sources
http://blog.pluralsight.com/new-course-making-java-and-c-work-together-jvm-and-net-clr-interop