有沒有人有一個很好的解決方案,將一些C#代碼集成到Java應用程序中?從Java調用C#代碼?
代碼很小,所以我可以用java重寫,但如果可能的話,我寧願重複使用代碼。不要重複自己,等等。
此外,我知道我可以公開C#作爲一個Web服務或任何,但它有一些安全/加密的東西在那裏,所以我寧願保持緊密集成,如果可能的話。
編輯:它將在一個基於服務器的應用程序,所以「下載」另一個運行時是無關緊要的。
有沒有人有一個很好的解決方案,將一些C#代碼集成到Java應用程序中?從Java調用C#代碼?
代碼很小,所以我可以用java重寫,但如果可能的話,我寧願重複使用代碼。不要重複自己,等等。
此外,我知道我可以公開C#作爲一個Web服務或任何,但它有一些安全/加密的東西在那裏,所以我寧願保持緊密集成,如果可能的話。
編輯:它將在一個基於服務器的應用程序,所以「下載」另一個運行時是無關緊要的。
草鬥鏈接被破壞。 – 2016-12-28 22:46:45
可能不再可用 – 2016-12-29 11:00:41
如果它很短,我認爲你最好用java重寫代碼。下載一個50Mb的運行時間已經夠糟糕的了。
我會重寫它,如果它不是太麻煩。 Web服務可以正常工作,但似乎只是重用一小段代碼會帶來很多開銷。
您將使用Java Native Interface調用編譯爲DLL的C#代碼。
如果只有少量的C#,將它移植到Java會容易得多。如果它很多,這可能是一個很好的方法來做到這一點。
這裏是它的一個高級別概述:
http://en.wikipedia.org/wiki/Java_Native_Interface
你的其他選擇是創建一個從C#代碼中的COM組件,並使用J-互操作來調用它。
如果您不希望重寫hadle它作爲一個Inter-process communication並選擇以下之一:
http://www.infoq.com/articles/in-process-java-net-integration建議在相同的進程空間中運行CLR和JVM並來回傳遞調用。這聽起來非常有效。如果它運作良好,我會嘗試將它整合到Jace中。
我是jni4net的作者,是JVM和CLR之間的開源內部網橋。它建立在JNI和PInvoke之上。沒有C/C++代碼需要。我希望它能幫助你。
如果它是一段可作爲命令行實用程序暴露的代碼,我只是讓其他主機語言使用系統調用來執行該實用程序。
如果您的C#應用程序需要調用Java,請編譯一個特殊的Java主程序,它將採用適當的命令行參數並返回文本輸出。
它是最古老,最簡單的方法。
如果它的Server Based,平臺是什麼?我不知道COM互操作與Mono有什麼關係,所以這是另一個需要考慮的因素。 – FlySwat 2008-09-08 19:10:51