源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

WinForm调用jar包的方法分析

  • 时间:2022-06-29 15:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:WinForm调用jar包的方法分析
本文实例讲述了WinForm调用jar包的方法。分享给大家供大家参考,具体如下: 因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接口采用http连接,采用JSON-RPC轻量级远程调用协议。所以决定用winform做一个管理界面(其中还包括其他的功能),java完成数据的传输,用winform调用jar包来完成客户需求。 具体做法如下(参考至[url=http://www.1sucai.cn/article/41110.htm]http://www.1sucai.cn/article/41110.htm[/url],后期我做了一些备注和调整): [b]一、将已经编译后的java中Class文件进行打包;打包命令JAR[/b] 如:将某目录下的所有class文件夹全部进行打包处理; 使用的命令:jar cvf test.jar -C com/ . 其中test.jar为要生成的jar包;com/ . 为指定的当前目录下的文件夹,该文件夹包括子文件夹及class文件; [b]二、到IKVM官方网站下载IKVM需要的组件[/b]  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之后就停更了?) [b]三、设置路径[/b] 解压ikvmbin-7.2.4630.5.zip,环境变量里添加IKVM_HOME变量,如下图 [img]http://files.jb51.net/file_images/article/201705/2017523110441959.png?2017423111432[/img] 并将%IKVM_HOME%/bin添加到path中。此处的%IKVM_HOME%是指解压后ikvm的主目录。 [b]四、将java的jar包转换为.dll控件[/b] 使用的命令: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/

[b]五、在winform项目中添加所需的控件[/b] 1、新建一个C# winform项目,首先添加一下必须的DLLs (我为了省事儿把bin下的所有dll文件都添加到引用里头了) 方法:邮件项目的引用->添加引用->浏览,找到dll添加即可。 有博客说需要添加IKVM.OpenJDK.Core.dll、IKVM.Runtime.dll、IKVM.Runtime.JNI.dll 2、添加已生成的.dll文件 将之前生成好的.dll文件引用到项目中(需要注意的是,如果该dll更新成最新版本了,需要将其更新到添加引用的引用文件夹下) [b]六、测试[/b] 在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#相关内容感兴趣的读者可查看本站专题:《[url=http://www.1sucai.cn/Special/125.htm]WinForm控件用法总结[/url]》、《[url=http://www.1sucai.cn/Special/611.htm]C#窗体操作技巧汇总[/url]》、《[url=http://www.1sucai.cn/Special/116.htm]C#数据结构与算法教程[/url]》、《[url=http://www.1sucai.cn/Special/165.htm]C#常见控件用法教程[/url]》、《[url=http://www.1sucai.cn/Special/478.htm]C#面向对象程序设计入门教程[/url]》及《[url=http://www.1sucai.cn/Special/227.htm]C#程序设计之线程使用技巧总结[/url]》 希望本文所述对大家C#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部