ตัวแปลงไบต์โค้ด
Grasshopperสามารถใช้ CLR bytecode และถ่ายทอดเป็น JVM ได้ มีไว้สำหรับเว็บแอปเป็นหลักโดยไม่มีให้เช่นการใช้งาน JVM ของคลาส Windows Forms ดูเหมือนจะค่อนข้างล้าสมัย เว็บพูดถึง ASP.NET 2.0, Visual Studio 2008 และอื่น ๆ กล่าวถึงครั้งแรกโดย @alex
XMLVMสามารถใช้ CLR หรือ JVM bytecode เป็นอินพุตและสร้างเป็นเอาต์พุต นอกจากนี้ยังสามารถส่งออก Javascript หรือ Objective-C ยังไม่มีการเผยแพร่มีเพียงการโค่นล้ม "เวอร์ชันทดลองพัฒนาที่ห้ามใช้ในสภาพแวดล้อมการใช้งานจริง"
IKVMไปในทิศทางอื่นที่ OP ต้องการ จัดเตรียมการใช้งาน JVM ที่รันบน CLR, JVM ถึง CLR bytecode Transpiler และตัวสร้างต้นขั้วเมธอดไลบรารี CLR สำหรับ Java http://www.ikvm.net/uses.htmlพูดถึงโดย @Jon Skeet
RPC
เหตุใดจึงไม่ให้ CLR และ JVM ทำงานควบคู่ไปและทำให้การสื่อสารราบรื่นที่สุด นี่ไม่ใช่สิ่งที่ OP ต้องการ แต่คำตอบอื่น ๆ นั้นค่อนข้างไม่ตรงประเด็นในรูปแบบที่แตกต่างกันดังนั้นเรามาพูดถึงมัน
RabbitMQมีตัวเลือกฟรีเป็นเซิร์ฟเวอร์ RPC ที่เขียนด้วย Erlang พร้อมไลบรารี API สำหรับ C # Java และอื่น ๆ
jnBridgeใบอนุญาตอาจแพงเกินไปสำหรับผู้ใช้ที่คาดหวังบางราย
gRPCและไลบรารี RPC สมัยใหม่ที่คล้ายคลึงกันให้การสนับสนุนภาษาที่กว้างการสร้างรหัสสำหรับไลบรารีไคลเอ็นต์ในภาษาเหล่านี้รูปแบบสายที่เป็นอิสระของภาษาสำหรับข้อมูลคุณสมบัติขั้นสูงเช่นการยกเลิกการโทรแบบเรียงซ้อนและอื่น ๆ
ภาษาโปรแกรม
เขียนครั้งเดียววิ่งได้ทุกที่;)
Haxeรวบรวมเป็น C # / CLR, Java / JVM, Javascript, Flash, Python, ... จัดเตรียมกลไกการทำงานร่วมกันสำหรับภาษาเป้าหมายแต่ละภาษา สามารถคิดได้ว่าเป็นตัวตายตัวแทนของ ActionScript3 ในระดับหนึ่ง ดูเหมือนจะเป็นเรื่องที่ค่อนข้างมั่นคงโดยมีอย่างน้อยหนึ่ง บริษัท ขึ้นอยู่กับมัน น่าเชื่อถือมากกว่า Stab ที่กล่าวถึงต่อไป
Stabนำเสนอคุณสมบัติ C # และการทำงานร่วมกันของ Java ไม่มีประโยชน์มากนักคุณจะได้รับคุณสมบัติ C # บางอย่าง แต่สิ่งที่คุณโต้ตอบคือโค้ด Java ที่ไม่ได้ใช้ https://softwareengineering.stackexchange.com/a/132080/45826ภาษาค่อนข้างคลุมเครืออาจถูกละทิ้งโดยมีสัญญาเล็กน้อยว่าจะดีขึ้น กล่าวถึงที่นี่ครั้งแรกโดย @Vns
อากาศบริสุทธิ์สำหรับแพลตฟอร์ม JVM;)
Scala , Kotlinและอื่น ๆ เป็นภาษาที่ค่อนข้างดีที่ทำงานบน JVM ซึ่งนำคุณสมบัติที่โปรแกรมเมอร์ C # อาจพลาดใน Java โดยเฉพาะอย่างยิ่ง Kotlin รู้สึกเหมือนเป็นทางเลือกที่สมเหตุสมผลสำหรับ C # ในโลกของ JVM Scala อาจเป็นภาษาที่ใหญ่เกินไปสำหรับโปรแกรมเมอร์ที่จะใช้งานได้ในเวลาอันสั้น
โมโน
นั่นเป็นตัวเลือกอย่างแน่นอนเช่นกัน ทำไมต้องเปลี่ยนเป็น JVM ถ้า Mono สามารถรันได้ตามที่เป็นอยู่ กล่าวถึงครั้งแรกโดย @ferhrosa
นิวยอร์ก - 12 พฤศจิกายน 2557 - เมื่อวันพุธที่ผ่านมา Microsoft Corp. ได้ตอกย้ำความมุ่งมั่นในประสบการณ์ของนักพัฒนาข้ามแพลตฟอร์มโดยการเปิดสแต็ก. NET ฝั่งเซิร์ฟเวอร์แบบเปิดและขยาย. NET เพื่อทำงานบนแพลตฟอร์ม Linux และ Mac OS
ตามข่าวประชาสัมพันธ์นี้ที่อ้างถึง Visual Studio 2015 จะเพิ่ม Linux / Mono เป็นแพลตฟอร์มที่รองรับ
นี่คือบล็อกที่เขียนโดย Mono project คนเกี่ยวกับเรื่องนี้จากอีกด้านหนึ่ง: .NET Source Code Integration (พฤศจิกายน 2014)
.NET Core
Windows / Linux เวอร์ชันหลายแพลตฟอร์มของ (บางส่วน) Net ที่ควบคุมโดย Microsoft 'Nuff กล่าวhttps://github.com/dotnet/core
สรุป
ตอนนี้จำเป็นต้องทดลองใช้เครื่องมือ / กรอบงานเหล่านี้และดูว่ามีแรงเสียดทานมากน้อยเพียงใด OP ต้องการเขียนเป็น C # สำหรับ JVM ซึ่งอาจใช้งานได้ดีโดยใช้ Grasshopper
การทำเช่นนี้โดยมีเป้าหมายเพื่อรวมไลบรารี C # และ Java world ไว้ใน codebase เดียวอาจไม่ได้ผล
แหล่งที่มา
http://blog.pluralsight.com/new-course-making-java-and-c-work-together-jvm-and-net-clr-interop