在C#中调用 java的函数(C#与java结合使用)

来源:互联网 发布:java和大数据的区别 编辑:程序博客网 时间:2024/06/03 18:25

C#中调用 java的函数:

一、简要步骤:

首先,编写 java代码,并用java编译工具编译生成jarclass

然后,使用 ikvmc jarclass文件编译成DLL文件;

最后,建立C#工程,调用DLL

二、准备工作:

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

(实际下载的网址是:http://sourceforge.net/projects/ikvm/files/

File/Folder Name

Size

Date

Downloads

openjdk6-b12-stripped.zip

30.8 MiB

Fri Jun 05 2009 16:20

1,338

ikvmbin-0.40.0.1.zip

11.8 MiB

Fri Jun 05 2009 13:29

2,966

ikvm-0.40.0.1.zip

15.3 MiB

Fri Jun 05 2009 13:27

2,246

 

2、  mono官方网站(http://www.go-mono.com/mono-downloads/download.html)下载:

mono-2.4.2.3-gtksharp-2.12.9-win32-3.exe。该文件较大,有70M。下载该文件的主要目的是提取其中的IKVM.OpenJDK.ClassLibrary.dll,该文件有30M。(当然也可以在Google上搜索下载。)

3、解压ikvm-0.40.0.1.zip,然后将其中的bin目录的全路径添加到Path环境变量中;

4、安装mono-2.4.2.3-gtksharp-2.12.9-win32-3.exe,然后在其路径下找到IKVM.OpenJDK.ClassLibrary.dll,默认是:C:/ProgramFiles/Mono-2.4.2.3/lib/mono/ikvm

5、将在第34步中找到的以下四个DLL拷出存放,目的是便于C#工程引用:

IKVM.OpenJDK.ClassLibrary.dll

IKVM.OpenJDK.Core.dll

IKVM.Runtime.dll

IKVM.Runtime.JNI.dll

准备工作完毕。

三、测试实例:(很简单的代码)

1、  建立一文本文件:demo.java,输入代码如下:

packagetest;

public classdemo

{

    publicString Message = "Hello fromJava!";//java 属性

    publicString Function()//java 方法

    {

      Stringstr1="Test ";

      Stringstr2="OK!";

      returnstr1+str2;

    }

}

2、进入CMDcddemo.java所在路径:

先执行:javac   demo.java

再执行:ikvmc  demo.class

至此,应该已经生成 demo.dll 文件了。

2、  新建C#Form程序,在“解决方案”--“引用”中添加demo.dll和上面所提到的四个IKVMdll

3、  在按钮的响应事件中添加如下代码:

        private void button1_Click(object senderEventArgs e)

        {

            test.demo td new test.demo();

            MessageBox.Show(td.Message);

            MessageBox.Show(td.Function());//调用java的方法

        }

 4、编译,运行,OK

0 0