本文主要介绍如何使用C#语言对Java方法进行调用。
0、准备事项
由于能够成功实现将Java导出的Jar包转换为C#可以调用的DLL与Java版本和IKVM工具版本有很大关系,只有当Java版本与IKVM版本相适配时,才可成功。
在经过多次尝试后,选择的Java和IKVM版本如下:
Java:Java 1.8.0
IKVM:ikvmbin-8.1.5717.0
1、导出Jar包
在需要导出为Jar包的Java文件上点击 鼠标右键,在图4.2所示的弹出的窗口中找到 Export 并点击;在图4.3所示的弹出的窗口中找到 Java->JAR file 并点击;在图4.4所示的窗口中,在数字1标识的窗口位置选择导出的Java文件所在的包,并选中数字2和数字4标识的窗口位置的复选框,通过数字3标识的窗口位置的复选框选择导出的文件目录,最后点击Finish按钮即可在设置的文件目录找到导出的Jar包,如图4.5所示。
图4.1 需要导出的Java代码
图4.2 点击Export
图4.3 点击JAR file
图4.4 配置Jar包导出参数
图4.5 导出的Jar包
2、将Jar包转换为DLL
(1)下载ikvm-8.1.5717.0,解压后复制解压文件夹下的bin目录路径;在桌面上找到 我的电脑,点击鼠标右键,在弹出窗口中点击 属性,在属性窗口中点击 高级系统设置,点击 环境变量,在环境变量设置窗口中点击 path,在path环境变量设置窗口中点击 新建,粘贴复制的bin目录路径,即可完成环境变量的配置,如图4.7所示。
图4.6 复制ikvm下的bin目录路径
(a) “我的电脑”上点击鼠标右键
(b)点击 高级系统设置
(c)点击环境变量
(d)添加IKVM下bin目录至path环境变量
图4.7 将ikvm的bin目录配置到path环境变量
(2)Win+R 并输入cmd打开命令行窗口;cd到Jar包所在的目录;在命令行中输入如下命令将Jar包转换为dll文件;将转出的dll文件与图4.12中所示的DLL文件拷贝至项目目录下,在项目中进行引用即可。
Ikvmc MonitorEmergencyTest.jar –out:MonitorEmergencyTest.dll
图4.8 打开命令行窗口
图4.9 cd到Jar包所在目录
图4.10 将jar包转换为dll文件
图4.11 dll转换结果
图4.12 ikvm中所需用到的dll文件
3、C#中引用Jar包
在VS中打开C#项目,展开项目目录后找到 引用;在 引用 上点击鼠标右键,并在弹出的窗口中点击 添加引用;在引用窗口中点击 浏览,在文件夹下找到需要引用的DLL文件,最后点击确定,即可实现对DLL包的引用。
图4.13 项目路径下找到引用
图4.14 点击添加引用
图4.15 添加引用
图4.16 C#中调用相关Java方法