[英]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.