天天看點

在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