簡體   English   中英

如何從Java程序調用AC#DLL

[英]How to call a c# dll from java program

我有需要在Java中調用的ac#dll。我發現有一種使用jni調用c ++ dll的方法。如何為ac#dll進行處理。.請幫助..我在此上找不到任何好的材料

這里

IKVM.NET是Java for Mono和Microsoft .NET Framework的實現。 它包括以下組件:

  • 在.NET中實現的Java虛擬機
  • Java類庫的.NET實現
  • 支持Java和.NET互操作性的工具

您可以使用Java本機接口 或者,您可以從C#代碼創建COM程序集,然后使用J-Interop調用它。

如果您有C#dll源,則可能需要使用更好的方法,即使用GrassHopper之類的工具將其轉換為Java。

根據GrassHopper的關鍵功能說明,它可以將MSIL轉換為Java叮咬代碼。 因此可以在沒有C#DLL來源的情況下使用

MSIL

檢查此: http : //www.javonet.com

如果您尋求快速簡便的解決方案,那么Javonet應該可以為您工作。 它是IKVM的輕巧版本,J-Integra也可以作為本機橋。

您要做的就是:

  1. 添加Javonet.jar做你的項目調用
  2. 調用Javonet.addReference(“ yourlib.dll”)
  3. 像使用幾乎JAVA包一樣使用您的.NET庫

樣品:

NObject obj = Javonet.New("yourDotNetClass");
obj.invoke("YourMethod","arg1", 2);

該語法不是強類型的,並且像反射一樣工作,但是由於您不需要在.NET端進行任何更改,因此可以使您最快地訪問任何自定義.NET代碼,第三方庫或.NET框架。 如果需要,也可以實現自定義的強類型包裝器。

我確實建議使用此橋接器,因為我認為這是最容易快速完成工作的方法,但是其他本機橋接器也值得檢查,因為這是此類情況的最佳方法。

除非您有很多時間並且只想學習,否則我將避免使用自定義JNI或COM,如果您需要快速而可靠的解決方案,請使用第三方橋梁之一。

暫無
暫無

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

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