把Java代码转成c#可用的dll
1、首先你需要到 IKVM官网 下载IKVM。http://sourceforge.net/projects/ikvm/files/,需要注意的是如果你用的是.net framework2.0,那么最新版本的IKVM就不能用,你能用的是0.38.0.2版本的
配置环境变量:右击“计算机”,选择“属性”,进入“高级系统设置”,“高级”-->“环境变量”,在path中添加“;D:\Program Files\ikvmbin-7.2.4630.5\ikvm-7.2.4630.5\bin”,其中第一个“;”可选,后面“D:\Program Files\ikvmbin-7.2.4630.5\ikvm-7.2.4630.5”为你的IKVM的路径。
测试:通过“CMD”,输入"ikvmc",Enter以下可以看到好多提示信息。
2、其次你要编写一个简单的java程序,网上最流行的一个例子:
package com.zht;
//要调用的Java类
public class Test {
//要调用的Java方法
public String returnString() {
return "Hello, zht!";
}
}
3、你要把java程序打包成jar文件
选中该项目,右击,选中“O(导出/Export)”,选择“java”-->"JAR 文件",下一步之后,选择你要打包的类文件(或包),选择“导出生成的类文件和资源”,下一步 再 下一步 ,确定。
4、你要用ikvm把jar文件编译成dll文件
CMD之后,输入“ikvmc -out:E:\hello.dll E:\hello.jar”,ikvmc是命令,-out:后面接输出的DLL文件,空格之后接 jar文件。
5、在C#中调用DLL文件
新建C#工程(可以是控制台程序,也可以是WinForm程序),添加引用:
1)hello.dll (你刚刚生成的DLL文件)
2)IKVM.OpenJDK.Core.dll ; IKVM.Runtime.dll ; IKVM.Runtime.JNI.dll (这三个是基本的DLL文件,其它DLL文件视情况添加)
通过using com.zht;导入该命名空间。可以新建Test类,以及使用该类的方法returnString();
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.zht;
namespace DllTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine((new Test()).returnString());
Console.ReadKey();
}
}
}
运行结果如下图: