本文主要介绍如何使用C#语言对Java方法进行调用。

0、准备事项

         由于能够成功实现将Java导出的Jar包转换为C#可以调用的DLL与Java版本和IKVM工具版本有很大关系,只有当Java版本与IKVM版本相适配时,才可成功。

         在经过多次尝试后,选择的Java和IKVM版本如下:

         JavaJava 1.8.0

         IKVMikvmbin-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所示。

ikm java考试 ikm测试java_Java

图4.1 需要导出的Java代码

ikm java考试 ikm测试java_ikm java考试_02

图4.2 点击Export

ikm java考试 ikm测试java_ikm java考试_03

图4.3 点击JAR file

ikm java考试 ikm测试java_C#_04

图4.4 配置Jar包导出参数

ikm java考试 ikm测试java_C#调用Java_05

图4.5 导出的Jar包

2、将Jar包转换为DLL

(1)下载ikvm-8.1.5717.0,解压后复制解压文件夹下的bin目录路径;在桌面上找到 我的电脑,点击鼠标右键,在弹出窗口中点击 属性,在属性窗口中点击 高级系统设置,点击 环境变量,在环境变量设置窗口中点击 path,在path环境变量设置窗口中点击 新建,粘贴复制的bin目录路径,即可完成环境变量的配置,如图4.7所示。

 

ikm java考试 ikm测试java_Java_06

图4.6 复制ikvm下的bin目录路径

ikm java考试 ikm测试java_Java_07

(a) “我的电脑”上点击鼠标右键

ikm java考试 ikm测试java_环境变量_08

(b)点击 高级系统设置

ikm java考试 ikm测试java_环境变量_09

(c)点击环境变量

ikm java考试 ikm测试java_ikm java考试_10

(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

ikm java考试 ikm测试java_环境变量_11

图4.8 打开命令行窗口

ikm java考试 ikm测试java_ikm java考试_12

图4.9 cd到Jar包所在目录

ikm java考试 ikm测试java_C#_13

图4.10 将jar包转换为dll文件

ikm java考试 ikm测试java_Java_14

图4.11 dll转换结果

ikm java考试 ikm测试java_Java_15

ikm java考试 ikm测试java_C#_16

图4.12 ikvm中所需用到的dll文件

3、C#中引用Jar包

在VS中打开C#项目,展开项目目录后找到 引用;在 引用 上点击鼠标右键,并在弹出的窗口中点击 添加引用;在引用窗口中点击 浏览,在文件夹下找到需要引用的DLL文件,最后点击确定,即可实现对DLL包的引用。

 

ikm java考试 ikm测试java_Java_17

图4.13 项目路径下找到引用

 

ikm java考试 ikm测试java_C#调用Java_18

图4.14 点击添加引用

ikm java考试 ikm测试java_环境变量_19

图4.15 添加引用

ikm java考试 ikm测试java_环境变量_20

图4.16 C#中调用相关Java方法