zoukankan      html  css  js  c++  java
  • C#实现调用Java类中方法

    基本思路:

    用C#实现调用Java编写的类中的方法;重点是将Java编写的程序打包成Jar,然后使用开源工具IKVM将其转化成DLL控件,在.NET环境下调用。

    分为以下步骤:

    1.下载JDK6(注:JDK7下可能不支持,建议使用JDK6和Eclipse),进行安装,然后配置环境变量Path,将JDK安装的路径(例如:D:Program FilesJavajdk1.6.0_10in)添加到Path变量后面,如图所示:

    用cmd打开DOS框,输入javac就可以查看是否配置成功,配置成功会有较详细的信息展示。

    2.打开Eclipse编写Java应用程序,然后将其打包成Jar包(也可以在cmd下使用命令进行)

    对Hello.java文件进行编译后形成Hello.class文件,然后鼠标选中Hello.java文件然后右击选择Export(导出)然后选择JAR File点击下一步,完成就生成JAR文件。

    也可以使用cmd命令行进行手动生成JAR文件,如图所示:

    其中Test_JavaincomHello.class是生成的.class文件的路径,com.Hello.jar是你要生成的JAR文件的名称。

    3.到IKVM官方网站下载IKVM需要的组件 http://www.ikvm.net/

    ikvm-0.42.0.3.zipikvmbin-0.42.0.3.zipopenjdk6-b16-stripped.zip三个压缩文件,然后将ikvm-0.42.0.3.zip进行解压,将其解压的文件的路径添加到环境变量Path后面,类似于配置JDK时的做法。

    4.将转化的JAR包通过IKVM工具转化为DLL控件。

    在cmd下使用命令ikvmc -out:Hello.dll com.Hello.jar即可转化

    5.新建C#项目,将ikvm-0.42.0.3.zip解压出来的文件路径的bin目录下找到以下3个DLL控件IKVM.OpenJDK.Core.dll ,IKVM.Runtime.dll ,IKVM.Runtime.JNI.dll 将它们添加引用添加到C#项目中。然后添加自己生成的Hello.dll控件。

    [csharp] view plaincopy
     
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.ComponentModel;  
    4. using System.Data;  
    5. using System.Drawing;  
    6. using System.Linq;  
    7. using System.Text;  
    8. using System.Windows.Forms;  
    9. //引入命名空间(Java中包的名字到C#这边会转化成namespace)  
    10. using com;  
    11.   
    12. namespace WindowsFormsHello  
    13. {  
    14.     public partial class Form1 : Form  
    15.     {  
    16.         public Form1()  
    17.         {  
    18.             InitializeComponent();  
    19.         }  
    20.         private void btnClick_Click(object sender, EventArgs e)  
    21.         {  
    22.             //Java中的类  
    23.             Hello hello = new Hello();  
    24.             MessageBox.Show(hello.SayHello());  
    25.         }  
    26.     }  
    27. }  

    点击界面上的按钮,就会输出Hello,Java的信息。

  • 相关阅读:
    JSON Web令牌(JWT)
    CSRF跨站点请求伪造(Cross—Site Request Forgery)
    logging模块
    Django中使用Celery
    第一坑 先引入jQuery ./引入
    CSS 入门
    超大型文件传输方案 + socket + subprocess popen 远程执行系统命令
    MYSQL的执行计划 事务处理 和 跑路
    mysql 存储过程
    Django中CBV View的as_view()源码解析
  • 原文地址:https://www.cnblogs.com/Alex80/p/4281932.html
Copyright © 2011-2022 走看看