WinForm调用jar包的方法分析
本文实例讲述了winform调用jar包的方法。分享给大家供大家参考,具体如下:
因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接口采用http连接,采用json-rpc轻量级远程调用协议。所以决定用winform做一个管理界面(其中还包括其他的功能),java完成数据的传输,用winform调用jar包来完成客户需求。
具体做法如下(参考至,后期我做了一些备注和调整):
一、将已经编译后的java中class文件进行打包;打包命令jar
如:将某目录下的所有class文件夹全部进行打包处理;
使用的命令:jar cvf test.jar -c com/ .
其中test.jar为要生成的jar包;com/ . 为指定的当前目录下的文件夹,该文件夹包括子文件夹及class文件;
二、到ikvm官方网站下载ikvm需要的组件 http://www.ikvm.net/或者直接到下载页面https://sourceforge.net/projects/ikvm/files/
ikvmbin-7.2.4630.5.zip
(有的博客说需要下载ikvmbin-0.42.0.3.zip或者ikvmbin-0.46.0.1.zip,这个主要取决你的jar包用的jdk是哪个版本,我的是jdk1.7,所以就下载的ikvmbin-7.2.4630.5.zip,目前2016.3.21我看ikvm只支持到1.7不知道后期是否会更新,怎么2012-12-10之后就停更了?)
三、设置路径
解压ikvmbin-7.2.4630.5.zip,环境变量里添加ikvm_home变量,如下图
并将%ikvm_home%/bin添加到path中。此处的%ikvm_home%是指解压后ikvm的主目录。
四、将java的jar包转换为.dll控件
使用的命令:ikvmc -out:ikvm.dll test.jar
其中ikvm.dll为将要生成的.dll控件文件名;test.jar为之前打包好的jar包文件。
成功的输出:
ikvm.net compiler version 7.2.4630.5 copyright (c) 2002-2012 jeroen frijters http://www.ikvm.net/
五、在winform项目中添加所需的控件
1、新建一个c# winform项目,首先添加一下必须的dlls (我为了省事儿把bin下的所有dll文件都添加到引用里头了)
方法:邮件项目的引用->添加引用->浏览,找到dll添加即可。
有博客说需要添加ikvm.openjdk.core.dll、ikvm.runtime.dll、ikvm.runtime.jni.dll
2、添加已生成的.dll文件
将之前生成好的.dll文件引用到项目中(需要注意的是,如果该dll更新成最新版本了,需要将其更新到添加引用的引用文件夹下)
六、测试
在winform项目中使用java类,其方法同java。但对包的引用使用c#的语法using
源代码:
java源代码:
package com.zht; //要调用的java类 public class test { //要调用的java方法 public string returnstring() { return "hello, zht!"; } }
c#窗体源代码:
using system; using system.collections.generic; using system.componentmodel; using system.data; using system.drawing; using system.linq; using system.text; using system.windows.forms; using com.zht; namespace kivmtest { public partial class form1 : form { public form1() { initializecomponent(); } private void form1_load(object sender, eventargs e) { test t = new test(); string str = t.returnstring(); messagebox.show(str); } } }
结果:
启动winform窗口后,显示提示窗口,内容为:hello, zht!
更多关于c#相关内容感兴趣的读者可查看本站专题:《winform控件用法总结》、《c#窗体操作技巧汇总》、《c#数据结构与算法教程》、《c#常见控件用法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结》
希望本文所述对大家c#程序设计有所帮助。
下一篇: pyqt5 实现工具栏文字图片同时显示