Bytecode transpilers
Grasshopper można pobrać kod bajtowy CLR i przenieść go do JVM. Przeznaczony głównie dla aplikacji internetowych, nie zapewnia np. Implementacja JVM klas Windows Forms. Wydaje się jednak nieco przestarzały. Internet mówi o ASP.NET 2.0, Visual Studio 2008 i tak dalej. Pierwsza wspomniana przez @alex
XMLVM może przyjmować kod bajtowy CLR lub JVM jako dane wejściowe i wytwarzać jako wyjście. Dodatkowo może wyprowadzać JavaScript lub Objective-C. Brak wersji, tylko Subversion. "Eksperymentalna wersja rozwojowa, której nie można używać w środowisku produkcyjnym."
IKVM idzie w innym kierunku niż OP chce. Zapewnia implementację JVM działającą na CLR, transpilator kodu bajtowego JVM do CLR i generator kodu biblioteki biblioteki CLR dla języka Java. http://www.ikvm.net/uses.html Wspomniany przez @Jon Skeet
RPC
Dlaczego nie ma CLR i JVM uruchomiony równolegle i uczynić komunikację tyle tarcia, jak to możliwe? To nie jest to, co chce OP, ale niektóre inne odpowiedzi są już dość różne na różne sposoby, więc omówmy to.
RabbitMQ, ma wolną opcję, jest to serwer RPC napisany w Erlang z bibliotekami API dla C#, Java i innych.
jnBridge, licencja może być zbyt kosztowna dla niektórych potencjalnych użytkowników.
gRPC i podobne nowoczesne biblioteki RPC oferują szerokie wsparcie językowe, generowanie kodu dla bibliotek klienckich w tych językach, niezależny od języka format drutu dla danych, zaawansowane funkcje, takie jak kaskadowanie anulowania połączenia i tak dalej.
Języki programowania
napisz raz, uruchom wszędzie;)
Haxe, kompiluje do C#/CLR, Java/JVM, JavaScript, Flash, Python, ... Zapewnia mechanizmy międzyoperacyjne dla każdej tarczy Języki. Można w pewnym stopniu myśleć o następcy ActionScript3. Wydaje się być dość solidnym materiałem, z co najmniej jedną firmą, która jest w rzeczywistości zależna od tego. O wiele bardziej godne zaufania niż Stab, wspomniane dalej.
Stab wprowadza niektóre funkcje C# i interoperacyjność Java. Niezbyt przydatny, masz kilka funkcji C#, ale to, z czym współpracujesz, to kod Java, który ich nie używa. https://softwareengineering.stackexchange.com/a/132080/45826 Język jest stosunkowo mało znany, prawdopodobnie porzucony, z małą obietnicą, że stanie się lepszy. Najpierw wspomniane tutaj przez @Vns.
Gust świeżego powietrza dla platformy JVM;)
Scala, Kotlin, inni są dość ładne języków działających na górze JVM które wprowadzają funkcje C# programista może brakuje w Javie. Szczególnie Kotlin wydaje się rozsądną alternatywą dla C# w świecie JVM. Scala może być nieco zbyt dużym językiem, aby programista mógł się w krótkim czasie zadomowić.
Mono
Jest to z pewnością również opcja. Po co przemieszczać się do JVM, jeśli Mono może go uruchomić tak, jak jest. Pierwsze wzmianki o @ferhrosa
NEW YORK - 12 listopada 2014 r - W środę, Microsoft Corp. wzmocnione swoje zobowiązanie do doświadczeń deweloperskich cross-platformowych przez otwarte pozyskiwania pełnej stronie serwera .NET stos i rozszerzanie .NET do działania na platformach Linux i Mac OS.
Zgodnie z this press release, z którego pochodzi oferta, Visual Studio 2015 doda Linux/Mono jako obsługiwaną platformę.
To jest blog napisany przez ludzi projektu Mono na ten temat, z drugiej strony: .NET Source Code Integration (listopad 2014).
NET Rdzeń
z systemem Windows/Linux wieloplatformowy wersja (niektóre) .Net regulowane przez Microsoft. "Nuff powiedział https://github.com/dotnet/core.
Wnioski
Byłoby teraz konieczne podawanie tych narzędzi/Ramki spróbować i zobaczyć, ile tam jest tarcie. OP chce napisać w języku C# dla maszyny JVM, która może całkiem dobrze pracować, używając Grasshopper.
Dokonanie tego w celu wymieszania bibliotek światowych C# i Java w jednej bazie kodów może nie działać tak dobrze.
Źródła
http://blog.pluralsight.com/new-course-making-java-and-c-work-together-jvm-and-net-clr-interop
Napisałem również wiele, wiele w pełni wieloplatformowych aplikacji w Javie - to codzienność dla mnie i mojego zespołu. Zazwyczaj uruchamiamy plan testów na każdej platformie, którą oficjalnie "kwalifikujemy", ale myślę, że minęły lata, odkąd błąd testowy został przypisany różnicy platformy. – Jared
Nasz główny produkt działa w systemie Windows, OS X i Linux bez zmian. To naprawdę nie jest trudne. –
Zrobiłem rozwój zewnętrznych z Java i to było niesamowite. Mój partner korzystał z Linuksa, korzystałem z Maca, a nasz klient był w systemie Windows ... co jeszcze mogę powiedzieć? – graffic