.NET与Java混合编程(jni4net)**
Java调用.NET的动态链接库
利用jni4net - bridge between Java and .NET可以不用C++编写桥接类。在官网下载最新jni4net的bin文件,URL:http://jni4net.com/
- java调用.NET类库
注意:对外接口类的访问权限必须为public
① 利用VS2017编写.NET动态链接库(DLL)文件,注意对外接口形参和返回类型最好保持java和C#能够相互识别,因为在编译时容易出现类型转换失败。
② 打开x64 Native Tools Command Prompt for VS 2017,将目录切换到jni4net的bin目录下,例如:C:…\jni4net-0.8.8.0-bin\bin
③ 执行DOS命令:.\proxygen.exe “DLL所在路径” -wd “java项目根路径”,例如:
.\proxygen.exe “C:…\Desktop\dddd\YangZJ\Yang\bin\Debug\Yang.dll” -wd “C:…\Desktop\ModifyDeformationMOdeling\Defomation_Modeling”
注意:当含有A.DLL依赖于B.DLL和C.DLL的情况时,不用单独在后边添加-cp “B.DLL;C.DLL”
④ 将命令行切换到java项目的根目录下,执行build.cmd命令,java根目录下会编译两个文件分别为Yang.j4n.dll和Yang.j4n.jar。
⑤ 然后将jni4net的lib目录下的jar文件和dll文件copy到java项目的根目录下,将C#项目的DLL文件也copy到java的根目录下,并将Yang.j4n.jar和jni4net.j-0.8.8.0.jar添加到Build Path。
C#调用java的jar包文件
利用jni4net - bridge between Java and .NET可以不用C++编写桥接类。
注意:这里包名称必须全部小写
与Java调用.NET编译相似
.\proxygen.exe “C:…\JTOCSHARP\JavaToCsharp.jar” -wd “C:…\JTOCSHARP\dll” -cp “B.jar;C.jar”
注意B.jar和C.jar是依赖项