C#调用Java类
分类: Java学习 |
1. |
在Eclipse中新建名称为hello的java project,此工程仅包含一个文件hello.java,具体代码如下: public class hello { public String GetString(String str)throws Exception { } |
2. |
将hello项目文件打成hello.jar,Eclipse提供这个功能。 |
3. |
到IKVM官方网站下载IKVM需要的组件 http://www.ikvm.net/ ,我当的版本是ikvmbin-0.45.4013。 解压缩ikvmbin-0.45.4013.zip,为了使用方便,将解压缩后的文件和文件夹放至c:\ikvm\下。 |
4. |
将hello.jar放至c:\ikvm\下。使用ikvm将hello.jar包转换为hello.dll控件。方法:在Cmd中执行
c:\ikvm\bin\ikvmc -out:c:\ikvm\hello.dll c:\ikvm\hello.jar |
5. |
新建C#工程,添加IKVM的dll引用 和 hello.dll引用 bin\IKVM.OpenJDK.Core.dll bin\IKVM.Runtime.dll bin\IKVM.Runtime.JNI.dll hello.dll 说明:以上IKVM中的三个dll为最小dll(因为我在hello.java中仅仅打印了一个字符串,没有其他复杂的代码),如果你java类中使用的jdk的功能较多,则按需要引用bin下以IKVM开头的其他dll |
6. |
测试,以下为C#代码 hello t = new hello(); |
7. | 不是所有的Java类都能调用成功,这要看IKVM支持了jdk中的哪些功能,但简单的绝对没问题。 |