传说中的IKVM.NET--让你的.NET不仅仅是.NET

遇到一个技术盲点, 要搞定android应用包apk中的某些文件, 但是那玩意毕竟是伟大的java写的, 本人苦苦翻译终不得果. 只能百度一下看看有没有能让伟大的java代码运行在咱的.NET平台上. 结果偶遇IKVM.NET, 此乃利器!

看了好多文章, 搜索引擎一搜一大堆, 名字都叫"在.NET平台运行Java程序-IKVM.NET入门"发现不太适合初学者, (可能我也没啥时间细看, 呵呵). 大家有兴趣可以拜读一下.

IKVM.NET是一个比较强大的工具, 里面包含了一个java虚拟机的.net实现还有java类库的.net实现. 据说现在的新版本已经支持jdk1.6了, 强大吧.
啥也别说, 先上官网地址: http://www.ikvm.net/  想下载新版就到里面去找, 相信大家E文都比我强, 哈哈.

我没有深入去研究这个工具, 只是做了简单的应用, 强大之处还得大家各自体会.

IKVM.NET中包含了一个工具--ikvmc.exe (此工具是在msdos环境下运行的, 不能直接点!)
这个工具可以将打好包的jar文件转换成windows的exe可执行文件或者dll动态库文件, 当然要看jar包的打法了, 还有里面是否有main函数了.
说个顺序吧
1. 首先拿到jar包(前面都是伟大的java做的事情, 小弟不是很明白).
2. 打开控制台, 转到你解压IKVM.NET的目录.
3. 输入命令转换jar包, 命令如下:
    ikvmc.exe C:\test.jar -out:C:\test.exe -target:exe
参数说明: C:\test.jar 就是原始jar文件, 不用多说. -out:C:\test.exe 就是要转换成的文件, -out代表输出, C:\test.exe代表要生成的文件及路径. -target:exe 就是要进行什么样的转换, 此处如果需要转成dll, 则应写成 -target: library, 当然在-out参数中生成文件的后缀名应该为dll才对.

4. 关键的一步已经过去了, 下面是收尾工作, 我们来进行在.NET中调用.
    网上好多文章都介绍了, 应该将IKVM.NET中的XXXX.dll连同自己生成的dll一同引用到自己的工程当中, 我不太赞同这种说法, 有可能会有遗漏, 也有可能会有冗余. 我建议的方法是, 先建立一个控制台程序(这种轻量级的程序, 啥都行), 然后将3步中生成的dll文件引用进来, 编译, 报错, 添加IKVM.NET中相应的dll, 再编译, 再报错, 再添加, 直至不报错为止.
    都成功了之后, 在你的.NET程序顶端的using或者Import时就可以看到java.lang, 诸如此类的命名空间了. 下面该干什么了呢? 我相信你懂的, 哈哈.

要特别注意一点, 使用IKVM.NET的时候, java与.NET之间只有一些基本数据类型是可以相通的, 如int, String等, 复杂点的类型是不能通用的, 这点要切记, 很关键, 否则java代码是没法与.NET代码混合起来写的!

废话了一堆, 其实只是踩在高人踩过的水坑里罢了, 呵呵. 祝大家的java和.net技术越来越牛X~

转载于:https://www.cnblogs.com/tonykent/archive/2010/05/17/1737056.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值