簡體   English   中英

如何從Java調用.NET dll

[英]How to call into .NET dll from Java

我有這個代碼來創建一個簡單的.NET .dll 它只返回一個int

但是,它不適用於Java。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ReturnINT
{
    public class ReturnINT
    {

        public static int RetornaInteiro ()
        {
            try
            {
                int number = 2;

                return number;
            }
            catch (Exception)
            {
                return 1;
            }
        }
    }
}

如何在Java中調用該方法?

當我使用JNI時我在java中有這個錯誤:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Dll.RetornaInteiro()V
      at Dll.RetornaInteiro(Native Method)
      at Dll.main(Dll.java:27)

您可以直接調用它: http//jni4net.sourceforge.net/

或者您可以將其稱為可執行文件。

查看http://www.javonet.com 使用one-jar文件,您可以加載此dll並調用如下:

Javonet.AddReference("your-lib.dll");
int result = Javonet.getType("ReturnINT").Invoke("RetornaInteiro");

Javonet將自動在.NET進程中加載​​您的庫,並允許您訪問其中包含的任何類和類型。 接下來,您可以獲取類型並調用靜態方法。 方法結果和參數在JAVA和.NET類型之間自動轉換。 你可以傳遞像這樣的字符串或bool參數

Boolean arg1 = true;
String arg2 = "test";
Javonet.getType("ReturnINT").Invoke("MethodWithArguments",arg1,arg2);

它們將自動翻譯。

此外,您還可以創建類型的實例,訂閱事件,設置/獲取屬性和字段,處理異常甚至傳遞值類型參數。 查看文檔以獲取更多詳細信息:

http://www.javonet.com/quick-start-guide/

PS:我是Javonet團隊的成員。 因此,請隨時向我詢問有關本機集成和我們的產品的任何詳細問題。

暫無
暫無

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

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