我有需要在Java中调用的ac #dll。我看到有一个方法使用jni来调用c ++ dll。我怎么能用ac#dll ...请帮助..我找不到任何好处这个材料
答案 0 :(得分:0)
来自here: -
IKVM.NET是Mono和Microsoft .NET的Java实现 框架。它包括以下组件:
- 以.NET实现的Java虚拟机
- Java类库的.NET实现
- 支持Java和.NET互操作性的工具
答案 1 :(得分:0)
您可以使用Java Native Interface。或者,您可以从C#代码创建COM程序集,并使用J-Interop来调用它。
如果您有C#dll源代码,您需要使用更好的方法,可以使用GrassHopper等工具将其转换为Java。
根据GrassHopper的主要功能说明,它可以将MSIL转换为Java咬代码。所以可以在没有c#dll来源的情况下使用
答案 2 :(得分:0)
如果您寻求快速简便的解决方案,那么Javonet应该可以正常使用。它是IKVM的轻量级产品,J-Integra也可作为本机桥。
您所要做的就是:
<强>示例:强>
NObject obj = Javonet.New("yourDotNetClass");
obj.invoke("YourMethod","arg1", 2);
语法不是强类型的,并且像反射一样工作,但是您可以最快地访问任何自定义.NET代码,第三方库或.NET框架,因为.NET端不需要进行任何更改。如果需要,也可以实现自定义强类型包装器。
我确实推荐这个桥,因为在我看来,最快速完成工作是最容易的,但其他原生桥也值得检查,因为这是这种情况的最佳方法。
我会避免进入自定义JNI或COM,除非你有很多时间,而你只是想学习,如果你需要快速可靠的解决方案,请选择其中一个第三方网桥。