簡體   English   中英

使用 .Net(C#) 調用 Java 函數

[英]Call Java function using .Net(C#)

是否可以使用 WCF 或任何用 C# .net 編寫的類應用程序調用用 Java 編寫的函數

是否可以通過使用 webOrb.. 我找不到足夠的關於 Java 到 .Net 遠程處理的信息。

如果你想在 C# 和 Java 之間進行通信,你有幾個選擇。

最干凈的:構建服務。

這假定您可以訪問 C# 組件和 Java 組件的源代碼。 如果您想在 Java 中調用方法,您可以構建一個允許從 C# 客戶端連接到 Java 服務的服務,然后該服務執行所需的功能,並將值返回給 C# 客戶端. 一些簡單的方法是構建RESTful 服務或使用Thrift 我建議您選擇與此類似的解決方案。

最復雜的:Corba

Corba是為在不同計算機語言之間進行通信而定義的標准。 大多數成熟的語言都支持它,但它有點不尋常,它的使用已經下降,有利於構建服務。 這也假設可以訪問兩個源代碼。 您必須獨立查找有關如何在 Java 和 C# 上使用 Corba 的信息。 真的建議不要這樣做。

最臟但最快的:作為進程執行並解析輸出

我真的不建議你這樣做,除非你真的別無選擇。 這將需要從 C# 中執行 Java 程序。 只有當您別無選擇時,這才是一個不錯的選擇,因為您所擁有的只是一個可執行文件。 如果是這種情況,您可以使用Process類來執行外部程序,向其發送參數,然后讀取輸出。 請參閱此處提到的示例: 如何從 C# 啟動進程?

但這有很多缺點,因為您必須考慮每個異常原因,確定這些情況的輸出,然后確定如何解析該輸出。 如果程序有任何級別的復雜性,在你知道之前,你最終會得到難以維護的代碼。

結論:構建服務

這可能是你最好的選擇。 構建一個公開 C# 客戶端可以調用的 API 的服務。

我們正在使用JCOBridge包:它能夠從 C# (.NET Core/6/Framework) 創建對 Java API 的雙向調用。 Templates 上可用的模板是我們滿足需求的良好起點。 我們用幾行代碼就達到了目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM