本文作者:小黑黑

使用IKVM将jar包转换为dll

小黑黑 6个月前 ( 10-19 ) 274 抢沙发
使用IKVM将jar包转换为dll摘要: 前言       最近在做项目时遇到了一些加密和解密的问题,.net和java的加密和解密互通的问题真的是让人头疼,使用...

前言

       最近在做项目时遇到了一些加密和解密的问题,.net和java的加密和解密互通的问题真的是让人头疼,使用java和.net进行加密的内容不一致,但是又不了解java的加密和解密,于是就想有没有什么办法能将java开发好的帮助类直接转换为.dll以供我们使用呢,于是乎查询了一下资料,还确实有工具可以将jar转换为.dll,这个工具就是IKVM。

一、下载IKVM

      下载地址:IKVM,下载完成后解压就OK了。

二、设置环境变量

      首先找到我的电脑,右键属性,左侧高级系统设置,在弹出的框中点击环境变量,在下面的系统变量中找到Path,双击打开编辑环境变量窗口,新建,将我们下载的ilvm的bin的路径添加到Path中,保存。

image.png

       添加完环境变量后,我们运行在cmd窗口运行 ikvmc,如果出现相关的说明,则说明我们的环境变量设置成功。

三、将jar包转换为.dll

//命令
ikvmc -out:test.dll test.jar -r:depend1.dll -r:depend2.dll

-out:需要输出的dll的名称,可以加上输出的路径

test.jar:需要转换的jar包

-r:所依赖的dll,如果jar包中有依赖其他的jar包,那么我们需要先将依赖的jar包先转换为dll,然后转换主jar包时,需要添加上所以来的dll

image.png

比如:下面我有3个jar包,其中3.jar是我们需要转换成3.dll,但3.jar又依赖1.jar和2.jar,那么我们就需要先将1.jar和2.jar转换为1.dll和2.dll

ikvmc -out 1.dll 1.jar

ikvmc -out 2.dll 2.jar

image.png

       如上图所示,则说明我们转换成功,但可以看到在转换2.jar时出现了警告,不用担心,只要不是出现错误,则不影响我们相关功能的使用。

接下来,我们使用同样的方法转换我们主要的jar包,由于我们的3.jar依赖1.jar和2.jar,所以我们转换3.jar时需要添加依赖。

image.png

这样我们就成功的转换了3.jar。

四、如何使用

       我们要想使用转换的dll,首先我们需要引入几个dll,找到我们ivkm的解压路径,在bin目录下找到 IKVM.OpenJDK.Core.dll、IKVM.OpenJDK.Security.dll、IKVM.Runtime.dll 我们需要引入这三个dll,以及3.dll到项目中,这样我们就可以使用3.dll中的相关方法了,如果使用时报错,我们可以根据错误信息引入其他的 IKVM.OpenJDK.xxx.dll。


分享到: 网站分享代码

发表评论

快捷回复:

评论列表 (暂无评论,274人围观)参与讨论

还没有评论,来说两句吧...