.NET不能直接调用Java的类,但IKVM.NET解决了这个问题。
IKVM.NET提供了两种方式调用java的类:
①把生成的jar包放置在程序根目录,然后通过创建URL实例的方式去调用类中的方法
②把生成的jar转换为dll,然后在程序中引用转化后的dll,之后就可以像调用c#类方法一样的方式来使用。官网说明文档
这里主要对第②种方式操作说明,步骤如下:
1、IKVM.NET官网上去下载程序包。地址:http://www.ikvm.net/download.html
我下载的版本为7.2.4630.5,文件包为:ikvmbin-7.2.4630.5.zip
2、解压包ikvmbin-7.2.4630.5.zip,然后打开cmd,通过cd定位到解压后的bin目录:~ikvmbin-7.2.4630.5ikvm-7.2.4630.5in
将需要转化为dll的jar包拷贝到~ikvmbin-7.2.4630.5ikvm-7.2.4630.5in目录下
执行ikvmc命令,将jar包转化为dll程序集。命令语句如下:
ikvmc -target:library EncryptUtil.jar
其中EncryptUtil.jar 为待转换为dll的jar包
出现 note IKVMC0002: Output file is " EncryptUtil.dll" 代表转换成功。可以在~ikvmbin-7.2.4630.5ikvm-7.2.4630.5in目录找到转换后新生成的文件EncryptUtil.dll
3、在.NET程序中引用生成的EncryptUtil.dll文件和~ikvmbin-7.2.4630.5ikvm-7.2.4630.5in目录下的IKVM.OpenJDK.Core.dll文件,然后就可以像使用C#类一样的方式来使用EncryptUtil类了
Console.Write(EncryptUtil.base64Decoder("测试"));
调用EncryptUtil的静态方法base64Decoder。
补充说明:所要转为为dll的jar包,应该包含完整的依赖引用。