InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

IKVM近况:面向CLR的JVM

作者 Jonathan Allen 译者 张龙 发布于 2010年1月20日

领域
架构 & 设计,
语言 & 开发
主题
Java ,
.NET ,
语言 ,
编程 ,
互操作 ,
CLR

IKVM旨在向CLR中增加Java支持,实现手段有两种:动态模式和静态模式。在动态模式下,Java字节码会在运行期被重新解释成IL代码;在静态模式下,Java源代码会被编译成IL代码而非Java字节码。无论哪种方式,IKVM都致力于成为Java规范的完整实现。除了尚未实现某些程序库以外,这两种方式的主要差别在于静态模式下的类装载并不完全符合JVM行为。

IKVM具有大量的组件:

  • ikvm:动态模式下的起始执行点。大家可以把它看作是CLR版本的java.exe。
  • ikvmc:这是一个静态编译器,用于在静态模式下将Java class和jar编译成.NET程序集。
  • ikvmstub:该工具用于创建class文件,创建好的class文件作为Java程序访问.NET类的桩。
  • IKVM.Runtime.dll:这是VM运行时本身。除了可以即时将Java字节码转换成IL代码外,它还会处理Java和.NET对象模型之间的映射关系。
  • IKVM.OpenJDK.*.dll:这是“Java程序库编译后的版本,外加一些IKVM.NET特有的代码”。
  • ikvm-native.dll:JNI接口所需的一个非托管C程序库。
  • IKVM.AWT.WinForms.dll:包含了AWT和Swing对等的组件。

目前的IKVM的版本是RC3。感兴趣的读者可以在IKVM的博客上查看当前已知问题和不兼容情况的完整列表。

查看英文原文:Update on IKVM, a JVM for the Common Language Runtime

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。