IKVM近况:面向CLR的JVM

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

你可能感兴趣的:(IKVM近况:面向CLR的JVM)