IKVM.Net
的是基于
.NET CLR
的
Java
虚拟机。它
是一个开源项目,主页地址:http://www.ikvm.net/
。
基于.NET的Java虚拟机意味着我们可以让Java程序跑在.NET上,可以通过虚拟机这个中介让Java程序和.NET应用程序一起协同工作。更难能可贵的是,IKVM同时支持微软的.NET Framework 和 Mono。
IKVM的技术特性包括:
-
可以静态和动态(运行时)把 Java 的字节代码转换为 .NET 的 IL 形式;
-
包括了一个 Java 的标准库,这个标准库已经静态编译成了 .NET IL 的形式;
-
提供力 JNI 接口,可以让 Java 程序通过 .NET 或者 Mono 访问本地资源。
-
提供了一个供 Java 调用 .NET 类的 Stub 。
IKVM现在可以提供对JDK 1.4很好的支持。
IKVM目前不成熟的地方在以下几个方面:
-
对AWT和Swing 没有提供支持,在 IKVM 的开发计划中,这项优先级别不高。
-
对 Java 的安全模型没有实现。
一般来说我们可以在一下3种情况下使用IKVM:
-
直接在 IKVM 下运行 Java 程序,比如: ikvm -jar myapp.jar
-
用 IKVM 来把 Java 类库转换成 .NET 类库,比如: ikvmc -target:library mylib.jar ? 可以生成: mylib.dll
一些和IKVM项目相关的资料: