基本思路:
用C#实现调用Java编写的类中的方法;重点是将Java编写的程序打包成Jar,然后使用开源工具IKVM将其转化成DLL控件,在.NET环境下调用。
分为以下步骤:
1.下载JDK6(注:JDK7下可能不支持,建议使用JDK6和Eclipse),进行安装,然后配置环境变量Path,将JDK安装的路径(例如:D:\Program Files\Java\jdk1.6.0_10\bin)添加到Path变量后面,如图所示:
用cmd打开DOS框,输入javac就可以查看是否配置成功,配置成功会有较详细的信息展示。
2.打开Eclipse编写Java应用程序,然后将其打包成Jar包(也可以在cmd下使用命令进行)
对Hello.java文件进行编译后形成Hello.class文件,然后鼠标选中Hello.java文件然后右击选择Export(导出)然后选择JAR File点击下一步,完成就生成JAR文件。
也可以使用cmd命令行进行手动生成JAR文件,如图所示:
其中Test_Java\bin\com\Hello.class是生成的.class文件的路径,com.Hello.jar是你要生成的JAR文件的名称。
3.到IKVM官方网站下载IKVM需要的组件 http://www.ikvm.net/
ikvm-0.42.0.3.zipikvmbin-0.42.0.3.zipopenjdk6-b16-stripped.zip三个压缩文件,然后将ikvm-0.42.0.3.zip进行解压,将其解压的文件的路径添加到环境变量Path后面,类似于配置JDK时的做法。
4.将转化的JAR包通过IKVM工具转化为DLL控件。
在cmd下使用命令ikvmc -out:Hello.dll com.Hello.jar即可转化
5.新建C#项目,将ikvm-0.42.0.3.zip解压出来的文件路径的bin目录下找到以下3个DLL控件IKVM.OpenJDK.Core.dll ,IKVM.Runtime.dll ,IKVM.Runtime.JNI.dll 将它们添加引用添加到C#项目中。然后添加自己生成的Hello.dll控件。
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- //引入命名空间(Java中包的名字到C#这边会转化成namespace)
- using com;
- namespace WindowsFormsHello
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void btnClick_Click(object sender, EventArgs e)
- {
- //Java中的类
- Hello hello = new Hello();
- MessageBox.Show(hello.SayHello());
- }
- }
- }
点击界面上的按钮,就会输出Hello,Java的信息。