c#直接调用java代码,需要ikvmbin-0.44.0.5.zip。下载地址:
http://pan.baidu.com/s/17moxX
1.下载并解压
2.配置环境变量:
在path中添加%IKVM_HOME%bin,IKVM_HOME为解压后的IKVM的主目录。在dos界面,输入"ikvm"命令,测试是否配置成功
3.编写java代码(java代码,要放在指定的package下,不要放在默认包下):
复制代码 代码如下:
package com.xyy.csharp;
import java.util.ArrayList;
import java.util.List;
public class TestMain {
//获得集合
public List<Demo1> getLists(){
List<Demo1> lst=new ArrayList<Demo1>();
Demo1 d=new Demo1();
d.setId(1);
d.setName("admin");
Demo1 d2=new Demo1();
d2.setId(2);
d2.setName("sa");
lst.add(d);
lst.add(d2);
return lst;
}
//获得字符串
public String getString(){
return "我是字符串";
}
//获得对象
public Demo1 getObject(){
Demo1 demo=new Demo1();
demo.setId(1);
demo.setName("admin");
return demo;
}
//获得boolean
public boolean getBoolean(){
return Boolean.TRUE;
}
//在控制台输出
public void SystemOutPrint(){
System.out.println("我是控制台输出语句");
}
}
5.将java项目打成jar包(test.jar)
6.使用命令,将jar包打成dll:ikvmc -out:IKVM.dll test.jar
7.新建c#项目,引入以下三个dll:
%IKVM_HOME%binIKVM.OpenJDK.Core.dll
%IKVM_HOME%binIKVM.Runtime.dll
%IKVM_HOME%binIKVM.Runtime.JNI.dll
引入刚刚打包的IKVM.dll
8.
9.输出结果:
10.c#不能直接接收java返回的集合,这里就没深入研究了