Welcome

首页 / 软件开发 / C# / 在C#中调用Java代码

在C#中调用Java代码2011-07-10 blogjava xiaoyi到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%in添加到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%inIKVM.OpenJDK.Core.dll

%IKVM_HOME%inIKVM.Runtime.dll

%IKVM_HOME%inIKVM.Runtime.JNI.dll

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

添加第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;
}
}
}