当前位置: 首页 > 编程笔记 >

c#调用jar包的方法步骤(非常详细)

归俊捷
2023-03-14
本文向大家介绍c#调用jar包的方法步骤(非常详细),包括了c#调用jar包的方法步骤(非常详细)的使用技巧和注意事项,需要的朋友参考一下

前言

最近项目遇到一个问题,就是有一个需求是cs端数据需要加密(使用sm4的加密方法),后端接收需要解密,但是cs端是c#写的 后端是java写的,两端的加密方式 的结果都会有所不同,当然还是我们这帮菜逼对算法这块研究不深。后面找了调用中间的c语言去弄 还是没有搞好,最后找的了一种方法,就是把java代码打成jar包 然后转换成dll,供cs端调用。

步骤如下

一、将已经编译后的java中Class文件进行打包;打包命令JAR

打包:可以使用命令 也可以使用eclipse 和idea 这样的工具直接打包 【源码会放在最后】

二、到IKVM官方网站下载IKVM需要的组件

www.ikvm.net/

网上有一大堆教程 有很多没有提到jdk版本跟这个有关系,如图所示的支持1.8版本的,这个不向低版本兼容哦,如果找不到这个版本的ikvm可以私聊我。

三、设置路径 解压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

现在就可以使用了

总结

到此这篇关于c#调用jar包的文章就介绍到这了,更多相关c#调用jar包内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍Python调用.NET库的方法步骤,包括了Python调用.NET库的方法步骤的使用技巧和注意事项,需要的朋友参考一下 开发背景是这样的:整个项目中使用很多台摩托罗拉的RFID读卡器,我要为这些读卡器写一个管理程序,判断是否有RFID标签进入或离开某个区域。用户提供给我的,除了设备,就是一个.net的动态库文件。 经朋友指点,安装了.NET Framework 4.0和IronPy

  • 为什么下面的代码不能保证多个线程之间total_home数字的唯一性,即使逻辑处于同步块中。 } } } 这是一个程序示例。试着运行5-10次,你会发现total_home的值并不是每次都是唯一的。

  • 本文向大家介绍详解易语言使用方法步骤,包括了详解易语言使用方法步骤的使用技巧和注意事项,需要的朋友参考一下 易语言作为一门全中文可视化的编程语言,已经受到越来越多人的重视。而它简单的操作,也使编程变得简单。这篇经验将告诉你如何用易语言做你的第一个程序。 安装完成后,双击易语言图标打开易语言。这里弹出了一个对话框。 双击中间的“windows窗口程序”新建一个程序。界面如图所示。 菜单栏:程序的各种

  • 我可能还不够清楚--情况是,我的现有代码不支持异步,我希望使用新的库,如System.net.http和只支持异步方法的AWS SDK。因此,我需要弥补这一差距,并能够拥有可以同步调用的代码,然后可以在其他地方调用异步方法。 我读了很多书,有很多次有人问这个问题,也有人回答这个问题。 从非异步方法调用异步方法