使用IKVM实现C#调用jar包

背景:

通过项目中不会有使用C#调用Java Jar包的场景,因为很多遇到这种情况都是做服务化,使用远程调用的方式解决服务异构,但是我们遇到了一个特殊场景:

加解密,算法已经用java封装好了,而且这个加解密是放在客户端上,不想服务化,所以综上,我们考虑了引入IKVM

 

步骤:

1.下载IKVM,版本号一定选ikvm-8.1.5717.0,其他版本我也试了,发现报错

我本机的电脑是Windows 10 专业版 19042.1526,下载后解压,将bin目录配置在电脑系统环境变量Path里面即可

 

2.将jar包放在bin目录下,然后在bin目录下使用cmd命令,输入命令:ikvmc -target:library 【xxxxx】.jar

 

3.一般不会报错,顶多会输出一些warning,这个不用管

 

4.创建C#项目,将第三步生成的dll放进去引用,然后引入ikwm nuget包,然后在项目中使用jar的方法即可

 

补充:使用net fx可以使用上面的步骤,但是如果使用netcore呢?根据网上的教程:

第一:ikvm的服务需要从github上选择ikvm-bin-net_core_compat分支,然后进入到bin目录下cmd一下(保证jar包也在该目录下)

第二:生成的dll引入到项目中,然后在项目的proj文件中增加<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0" />

posted @ 2022-03-10 09:35  DarryRing  阅读(1951)  评论(0编辑  收藏  举报