c#调用java
1.遇到的项目场景是,要跟一个用.net语言开发的系统进行接口调用,要用到sm4的加密算法,一开始的时候解决办法是用java调用c++,然后c++调用c#的代码,在windows系统下可以实现双方的加密和解密保持
一致,但是我们系统的服务器是linux系统,在linux系统下不支持调用c#语言的dll文件所以部署到服务器上就不能使用了
2.采取的办法是通过c#调用java的方法,应为java是跨平台的开发语言
3.实现方式:
通过网上查找找到一种通过将java的方法打成jar包然后将jar转化成dll文件然后再让c#将dll引入这样就可实现调用了!
采用的工具是ikVM (https://www.cnblogs.com/hxh88/p/5904909.html)
具体方法是下载IKVM
然后解压进入bin目录下,打开cmd窗口执行
ikvmc-out: 例子.dll 例子目录/例子.jar
然后打好的。dll文件就在bin目录下
然后C#项目引入是也要讲bin目录下的三个dll文件引入,包括:IKVM.OpenJDK.Core.dll IKVM.Runtime.dll IKVM.Runtime.JNI.dll
在c#直接用usring 包名即可