Bayt kodu aktarıcıları
Grasshopper bir CLR bayt kodu alıp JVM için aktarabilir. Öncelikle web uygulamaları için tasarlanmıştır, örneğin Windows Forms sınıflarının JVM uygulamasını sağlamaz. Yine de biraz eski görünüyor. Web, ASP.NET 2.0, Visual Studio 2008 vb. Hakkında konuşuyor. İlk olarak @alex tarafından bahsedildi
XMLVM , girdi olarak CLR veya JVM bayt kodunu alabilir ve her ikisini çıktı olarak üretebilir. Ek olarak Javascript veya Objective-C çıktısını alabilir. Henüz sürüm yok, yalnızca Subversion. "Bir üretim ortamında kullanılmayacak deneysel geliştirme sürümü."
IKVM , OP'nin istediğinin tersine gider. CLR'de çalışan bir JVM uygulaması, bir JVM'den CLR'ye bayt kodu aktarıcısı ve Java için bir CLR kitaplık yöntemi saplama oluşturucusu sağlar. http://www.ikvm.net/uses.html @Jon Skeet tarafından bahsedilmiştir
RPC
Neden CLR ve JVM birlikte çalışmıyor ve iletişimi olabildiğince sorunsuz hale getirmiyor? Bu, OP'nin istediği şey değil, ancak diğer bazı yanıtlar zaten farklı şekillerde konu dışı, bu yüzden ele alalım.
RabbitMQ , ücretsiz bir seçeneğe sahiptir, C #, Java ve daha fazlası için API kütüphaneleri ile Erlang'da yazılmış bir RPC sunucusudur.
jnBridge , lisans bazı potansiyel kullanıcılar için çok pahalı olabilir.
gRPC ve benzer modern RPC kitaplıkları, geniş dil desteği, bu dillerdeki istemci kitaplıkları için kod oluşturma, veriler için dilden bağımsız kablo biçimi, basamaklı çağrı iptali gibi gelişmiş özellikler vb. sunar.
Programlama dilleri
Bir kez yazın, her yerde çalıştırın;)
Haxe , C # / CLR, Java / JVM, Javascript, Flash, Python,… için derler. Hedef dillerin her biri için birlikte çalışma mekanizmaları sağlar. Bir dereceye kadar ActionScript3'ün halefi olarak düşünülebilir. Aslında en az bir şirketin bağlı olduğu oldukça sağlam şeyler görünüyor. Stab'dan çok daha güvenilir.
Stab , bazı C # özellikleri ve Java birlikte çalışabilirliği sağlar. Çok kullanışlı değil, bazı C # özellikleri elde edersiniz, ancak etkileşimde bulunduğunuz şey onları kullanmayan Java kodudur. https://softwareengineering.stackexchange.com/a/132080/45826 Dil nispeten belirsizdir, muhtemelen terk edilmiştir ve daha iyi olma vaadinde bulunulmamaktadır. İlk olarak burada @Vns tarafından bahsedilmiştir.
JVM platformu için taze hava fırtınası;)
Scala , Kotlin , diğerleri, Java'da bir C # programcısının gözden kaçırabileceği özellikleri getiren JVM üzerinde çalışan oldukça hoş dillerdir. Özellikle Kotlin, JVM dünyasında C # için makul bir alternatif gibi hissediyor. Scala, bir programcının kısa sürede alışması için biraz fazla büyük bir dil olabilir.
Mono
Bu da kesinlikle bir seçenektir. Mono onu olduğu gibi çalıştırabiliyorsa neden JVM'ye aktarılsın. İlk olarak @ferhrosa bahsetti
NEW YORK - 12 Kasım 2014 - Çarşamba günü, Microsoft Corp., tam sunucu tarafı .NET yığınını açık kaynak kullanarak ve .NET'i Linux ve Mac OS platformlarında çalışacak şekilde genişleterek platformlar arası geliştirici deneyimlerine olan bağlılığını pekiştirdi.
Alıntı yapılan bu basın bültenine göre , Visual Studio 2015 desteklenen bir platform olarak Linux / Mono'yu ekleyecektir.
Bu, Mono proje insanlarının diğer taraftan yazdığı bir blogdur: .NET Kaynak Kod Entegrasyonu (Kasım 2014).
.NET Çekirdeği
Microsoft tarafından yönetilen (bazıları) .Net'in Windows / Linux çoklu platform sürümü. 'nuff https://github.com/dotnet/core dedi .
Sonuç
Şimdi bu araçları / çerçeveleri denemek ve ne kadar sürtüşme olduğunu görmek gerekli olacaktır. OP, Grasshopper ile oldukça iyi çalışabilen JVM için C # ile yazmak istiyor.
Bunu C # ve Java dünya kitaplıklarını tek bir kod tabanında karıştırmak amacıyla yapmak o kadar iyi çalışmayabilir.
Kaynaklar
http://blog.pluralsight.com/new-course-making-java-and-c-work-together-jvm-and-net-clr-interop