Transpiler Bytecode
Belalang dapat mengambil bytecode CLR dan mentranspilasinya untuk JVM. Ditujukan terutama untuk aplikasi web, ia tidak menyediakan, misalnya implementasi JVM kelas Windows Forms. Sepertinya agak kuno. Web berbicara tentang ASP.NET 2.0, Visual Studio 2008 dan seterusnya. Pertama kali disebutkan oleh @alex
XMLVM dapat menggunakan bytecode CLR atau JVM sebagai input dan menghasilkan salah satunya sebagai output. Selain itu dapat menampilkan Javascript atau Objective-C. Belum ada rilis, hanya Subversion. "Versi pengembangan eksperimental yang tidak akan digunakan dalam lingkungan produksi."
IKVM pergi ke arah lain dari yang diinginkan OP. Ini menyediakan implementasi JVM yang berjalan di CLR, transpiler bytecode JVM ke CLR dan generator rintisan metode library CLR untuk Java. http://www.ikvm.net/uses.html Disebutkan oleh @Jon Skeet
PPK
Mengapa CLR dan JVM tidak berjalan berdampingan dan membuat komunikasi sebebas mungkin? Ini bukan yang diinginkan OP, tetapi beberapa jawaban lain sudah cukup off topic dengan cara yang berbeda, jadi mari kita bahas.
RabbitMQ , memiliki opsi gratis, ini adalah server RPC yang ditulis dalam Erlang dengan pustaka API untuk C #, Java dan banyak lagi.
jnBridge , lisensi mungkin terlalu mahal untuk sebagian calon pengguna.
gRPC , dan library RPC modern serupa menawarkan dukungan bahasa yang luas, pembuatan kode untuk library klien dalam bahasa ini, format kabel independen bahasa untuk data, fitur lanjutan seperti pembatalan panggilan berjenjang, dan sebagainya.
Bahasa pemrograman
Menulis sekali, lari kemana-mana;)
Haxe , mengkompilasi ke C # / CLR, Java / JVM, Javascript, Flash, Python,… Menyediakan mekanisme interop untuk setiap bahasa target. Dapat dianggap sebagai penerus ActionScript3 sampai taraf tertentu. Tampaknya hal yang cukup solid, dengan setidaknya satu perusahaan benar-benar bergantung padanya. Jauh lebih bisa dipercaya daripada Stab, yang disebutkan selanjutnya.
Stab menghadirkan beberapa fitur C # dan interoperabilitas Java. Tidak terlalu berguna, Anda mendapatkan beberapa fitur C #, tetapi yang berinteraksi dengan Anda adalah kode Java yang tidak menggunakannya. https://softwareengineering.stackexchange.com/a/132080/45826 Bahasanya relatif tidak jelas, mungkin ditinggalkan, dengan sedikit janji untuk menjadi lebih baik. Pertama kali disebutkan di sini oleh @Vns.
Hembusan udara segar untuk platform JVM;)
Scala , Kotlin , dan lainnya, adalah bahasa yang cukup bagus yang dijalankan di atas JVM yang menghadirkan fitur-fitur yang mungkin terlewatkan oleh programmer C # di Java. Terutama Kotlin terasa seperti alternatif yang masuk akal untuk C # di dunia JVM. Scala mungkin bahasa yang terlalu besar bagi programmer untuk merasa nyaman dalam waktu singkat.
Mono
Itu tentu saja merupakan pilihan juga. Mengapa transpile ke JVM jika Mono dapat menjalankannya apa adanya. Pertama kali disebutkan oleh @ferhrosa
NEW YORK - 12 November 2014 - Pada hari Rabu, Microsoft Corp. memperkuat komitmennya terhadap pengalaman pengembang lintas platform dengan sumber terbuka tumpukan .NET sisi server penuh dan memperluas .NET untuk berjalan di platform Linux dan Mac OS.
Menurut siaran pers ini , Visual Studio 2015 akan menambahkan Linux / Mono sebagai platform yang didukung.
Ini adalah blog yang ditulis oleh orang-orang proyek Mono, dari sisi lain: Integrasi Kode Sumber .NET (November 2014).
.NET Core
Versi multiplatform Windows / Linux dari (beberapa) .Net diatur oleh Microsoft. kata nuff https://github.com/dotnet/core .
Kesimpulan
Sekarang perlu untuk mencoba alat / kerangka kerja ini dan melihat berapa banyak gesekan yang ada. OP ingin menulis dalam C # untuk JVM, yang sebenarnya bisa bekerja cukup baik menggunakan Belalang.
Melakukan ini dengan tujuan untuk mencampur C # dan pustaka dunia Java dalam satu basis kode mungkin tidak bekerja dengan baik.
Sumber
http://blog.pluralsight.com/new-course-making-java-and-c-work-together-jvm-and-net-clr-interop