c#调⽤jar包的⽅法(超详细)
@前⾔:最近项⽬遇到⼀个问题,就是有⼀个需求是cs端数据需要加密(使⽤sm4的加密⽅法),后端接收需要解密,但是cs端是c#写的后端是java写的,两端的加密⽅式的结果都会有所不同,当然还是我们这帮菜逼对算法这块研究不深。后⾯了调⽤中间的c语⾔去弄还是没有搞好,最后的了⼀种⽅法,就是把java代码打成jar包然后转换成dll,供cs端调⽤。步骤⼀、将已经编译后的java中Class⽂件进⾏打包;打包命令JAR
打包:可以使⽤命令也可以使⽤eclipse 和idea 这样的⼯具直接打包【源码会放在最后】
⽹上有⼀⼤堆教程 有很多没有提到jdk版本跟这个有关系,如图所⽰的⽀持1.8版本的,这个不向低版本兼容哦,如果不到这个版本的ikvm可以私聊我。java源代码加密
三、设置路径
解压ikvm-8.1.5717.0.zip,可以设置IKVM_HOME的路径到环境变量,也可以直接使⽤固定的路径配置进去,我这⾥是直接把完整的路径配置进去的
四、将java的jar包转换为.dll控件
使⽤的命令:ikvmc -target:library xxx.jar 和 ikvmc -target:library -reference:需引⽤A.dll -reference:需引⽤B.dll 主的.jar
前者命令是把jar打成dll 后者是把jar打成dll的同时 加⼊他需要外部引⼊的dll包(原jar包引⽤)
ps:我这边是把jar包都复制到ikvm的bin⽬录下,并且在bin的⽬录下使⽤的ikvmc命令,如果是使⽤idea引⼊的是把所有的lib包放在⼀个⽬录下在modules引⼊的,只需要把主jar包打成⼀个dll就⾏了其他不必引⽤到cs⾥⾯去,elipse则是都需要打成dll 都引⼊。【这⾥是看实际情况⽽⾔,最好是都打成dll引⼊】
五、在C#项⽬中添加所需的控件
前提需要下载:ikvm,不然会报错
引⽤打包好的dll
现在就可以使⽤了
本⽂来源于:程序员ken,专属平台有csdn、思否(SegmentFault)、 简书、 开源中国(oschina)、掘⾦,转载请注明出处。推荐阅读: