天天看点

在C#中调用Java代码

 到IKVM官方网站下载IKVM需要的组件

  ikvm-0.40.0.1.zip

  ikvmbin-0.40.0.1.zip

  openjdk6-b12-stripped.zip

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

  到Debian IKVM下载IKVM.OpenJDK.ClassLibrary.dll。

  或者到rayfile去下载data.tar.gz。这个文件可以直接用winrar解压。

  你需要下载一个简单的工具undeb去解压.deb文件。

  也可以到rayfile下载

  解压ikvm_0.38.0.2+dfsg-2_all.deb文件。

  新建一个Java文件 package com.helloikvm.simple;

public class SimpleReturnString {

    public String returnString() {

        return "Hello, IKVM!";

    }

    public void throwException() throws Exception {

        throw new Exception("Hello, Exception!");

    }

}

  编译SimpleReturnString文件,然后将其打包成一个jar文件,例如IKVM.jar.

  使用ikvmc -out:IKVM.dll IKVM.jar。你现在应该在IKVM的目录下面看到一个IKVM.dll文件。

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

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

  %IKVM_HOME%\bin\IKVM.Runtime.dll

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

  IKVM.OpenJDK.ClassLibrary.dll[这的DLL在ikvm_0.38.0.2+dfsg-2_all.deb\usr\lib\cli文件夹中。或者也可在data.tar.gz中的usr\lib\cli中找到。参看第三步和第四步]

  添加第10步生成的IKVM.dll到C#.NET项目中,然后using %package_name%就可以实现对Java的调用。

  编写C#代码 // import java package

using com.helloikvm.simple;

namespace IKVMTest

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void btnTest_Click(object sender, EventArgs e)

        {

            // Initialize the Java method

            SimpleReturnString simpler = new SimpleReturnString();

            // Call Java method

            String returnString = simpler.returnString();

            txtTest.Text = returnString;

        }

    }

}

转载于:https://www.cnblogs.com/Jefft/archive/2009/06/21/1507632.html