c#直接调用java代码,需要ikvmbin-0.44.0.5.zip。下载地址:
http://pan.baidu.com/share/link?shareid=3996679697&uk=255031021
1.下载并解压
2.配置环境变量:
在path中添加%IKVM_HOME%\bin,IKVM_HOME为解压后的IKVM的主目录。在dos界面,输入"ikvm"命令,测试是否配置成功
3.编写java代码(java代码,要放在指定的package下,不要放在默认包下):
1 package com.xyy.csharp; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 public class TestMain { 7 8 //获得集合 9 public List<Demo1> getLists(){ 10 List<Demo1> lst=new ArrayList<Demo1>(); 11 Demo1 d=new Demo1(); 12 d.setId(1); 13 d.setName("admin"); 14 Demo1 d2=new Demo1(); 15 d2.setId(2); 16 d2.setName("sa"); 17 18 lst.add(d); 19 lst.add(d2); 20 return lst; 21 } 22 23 //获得字符串 24 public String getString(){ 25 return "我是字符串"; 26 } 27 28 //获得对象 29 public Demo1 getObject(){ 30 Demo1 demo=new Demo1(); 31 demo.setId(1); 32 demo.setName("admin"); 33 return demo; 34 } 35 36 //获得boolean 37 public boolean getBoolean(){ 38 return Boolean.TRUE; 39 } 40 41 //在控制台输出 42 public void SystemOutPrint(){ 43 System.out.println("我是控制台输出语句"); 44 } 45 }
5.将java项目打成jar包(test.jar)
6.使用命令,将jar包打成dll:ikvmc -out:IKVM.dll test.jar
7.新建c#项目,引入以下三个dll:
%IKVM_HOME%\bin\IKVM.OpenJDK.Core.dll
%IKVM_HOME%\bin\IKVM.Runtime.dll
%IKVM_HOME%\bin\IKVM.Runtime.JNI.dll
引入刚刚打包的IKVM.dll
8.
9.输出结果:
10.c#不能直接接收java返回的集合,这里就没深入研究了