在C#中调用Java代码
2009-06-13 08:31:40 来源:WEB开发网到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;
}
}
}
赞助商链接