在.NET/Mono上运行Java:Jeroens Frijters谈IKVM.NET
fmms 13年前
<p> IKVM.NET(IKVM)是个面向 .NET 与 Mono 平台的 JVM,用户可以通过它<a href="/misc/goto?guid=4958320209682612544">直接</a>运行 Java 应用。<a href="/misc/goto?guid=4958339598632475675">近日</a>,来自微软的 Erik Meijer 与 IKVM 创建者 Jeroen Frijters 讨论了该项目的几个方面。此次讨论的涉及面非常广,从 IKVM 的内核谈到了该项目的未来目标。其要点如下所示:</p> <p> Frijters 从 2002 年该项目启动开始就作为项目的主开发者。此次讨论首先从 Frijters 介绍 IKVM 是如何成为 Mono 项目的一部分(形成一种双赢的局面,两个项目可以彼此贡献补丁)开始。从架构上来说,IKVM 在 .NET 上完全实现出了 Java 的内存模型。Frijters 尝试尽量不使用包装器,在某些情况下需要通过包装器才能正确地处理 Java 的字符串接口。</p> <p> 如果代码运行在 IKVM 上,那么 .NET 开发者可以在 Java 代码中使用自定义属性。如果代码运行在 IKVM 上,那么 Java 与 .NET 这两个平台都可以使用属性。这样,开发者就可以在 Java 代码中使用 .NET 自定义属性,也可以在 C# 类与成员中使用 Java 注解。</p> <p> 在背后,IKVM 的运行时与编译器主要都是使用 C# 编写的。Frijters 可以使用公开的 Java 代码(来自于 GNU Classpath 与 OpenJDK 等)并替换掉托管代码中的原生C代码。如果用户在应用中没有使用原生代码,那么使用了 IKVM 的 Java 应用就是完全可移植的,因为 IKVM 并未使用任何原生代码。</p> <p> 目前,IKVM 已完全支持 Java 7,包括对新的指令 invoke dynamic 的支持。然而,Frijters 承认还有很多工作要做以提升新指令的性能。</p> <p> <strong>查看英文原文:</strong><a href="/misc/goto?guid=4958339599426131870">Running Java on NET/Mono: Jeroens Frijters Discusses IKVM.NET</a></p> <div id="come_from"> 来自: <a id="link_source2" href="/misc/goto?guid=4958339600227344507" target="_blank">InfoQ</a> </div>