基本思路:
用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的信息。