C#调用java类、jar包方法;eclipse生成jar包

C#调用java类、jar包方法

 

一、将已经编译后的java中Class文件进行打包;打包命令JAR

 

如:将某目录下的所有class文件夹全部进行打包处理;

 

使用的命令:jar cvf test.jar -C com/ .

 

其中test.jar为要生成的jar包;com/ . 为指定的当前目录下的文件夹,该文件夹包括子文件夹及class文件;

 

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

 

  ikvm-0.42.0.3.zip

 

  ikvmbin-0.42.0.3.zip

 

  openjdk6-b16-stripped.zip

 

三、设置路径

 

解压ikvm-0.42.0.3.zip,并将%IKVM_HOME%/bin添加到path中。此处的%IKVM_HOME%是指解压后ikvm的主目录。

 

四、将java的jar包转换为.dll控件

 

使用的命令:ikvmc -out:IKVM.dll test.jar

 

其中IKVM.dll为将要生成的.dll控件文件名;test.jar为之前打包好的jar包文件。

 

五、在C#项目中添加所需的控件

 

  1、新建一个C#.NET项目,首先添加一下必须的DLLs

 

  %IKVM_HOME%/bin/IKVM.OpenJDK.Core.dll

 

  %IKVM_HOME%/bin/IKVM.Runtime.dll

 

  %IKVM_HOME%/bin/IKVM.Runtime.JNI.dll

 

  2、添加已生成的.dll文件

 

      将之前生成好的.dll文件加载到C#项目中

 

六、测试

 

在C#项目中使用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);
        }
    }
}

 

 

结果:

 

启动C#窗口后,显示提示窗口,内容为:Hello, zht!

eclipse生成jar包

 
第一:普通类导出jar包,我说的普通类就是指此类包含main方法,并且没有用到别的jar包。 

1.在eclipse中选择你要导出的类或者package,右击,选择Export子选项; 

2.在弹出的对话框中,选择java文件---选择JAR file,单击next; 

3.在JAR file后面的文本框中选择你要生成的jar包的位置以及名字,注意在Export generated class files and resources和Export java source files and resources前面打上勾,单击next; 

4.单击两次next按钮,到达JAR Manifest Specification。注意在最底下的Main class后面的文本框中选择你的jar包的入口类。单击Finish,完成。 

你可以在dos环境下,进入你的jar所在的目录,运行 java -jar 名字.jar,检测运行是否正确。 

第二、你所要导出的类里边用到了别的jar包。比如说你写的类连接了数据库,用到数据库驱动包oracl.jar.。 

1.先把你要导出的类按照上面的步骤导出形成jar包,比如叫test.jar 

2.新建一个文件夹main,比如在D盘根目录下; 

3.把test.jar和oracl.jar拷贝到main文件下,右击test.jar,解压到当前文件夹。把META-INF\MANIFEST.MF剪切到另外一个地方 (比如是桌面!) ; 

4.右击oracl.jar,解压到当前文件夹。 

5.在dos环境下,进入到D盘的main文件夹下,执行 jar cvfm new.jar meta-inf/manifest.mf .,不要忘了最后面的点。 

6.用压缩工具打开你新生成的new.jar,用你放在桌面的META-INF\MANIFEST.MF覆盖new.jar原有。 

你可以在dos环境下,进入你的jar所在的目录,运行 java -jar 名字.jar,检测运行是否正确。

 

原文地址:https://www.cnblogs.com/xchit/p/2803866.html