在.NET/Mono上運行Java:Jeroens Frijters談IKVM.NET

fmms 12年前發布 | 9K 次閱讀 Java

IKVM.NET(IKVM)是個面向 .NET 與 Mono 平臺的 JVM,用戶可以通過它直接運行 Java 應用。近日,來自微軟的 Erik Meijer 與 IKVM 創建者 Jeroen Frijters 討論了該項目的幾個方面。此次討論的涉及面非常廣,從 IKVM 的內核談到了該項目的未來目標。其要點如下所示:

Frijters 從 2002 年該項目啟動開始就作為項目的主開發者。此次討論首先從 Frijters 介紹 IKVM 是如何成為 Mono 項目的一部分(形成一種雙贏的局面,兩個項目可以彼此貢獻補丁)開始。從架構上來說,IKVM 在 .NET 上完全實現出了 Java 的內存模型。Frijters 嘗試盡量不使用包裝器,在某些情況下需要通過包裝器才能正確地處理 Java 的字符串接口。

如果代碼運行在 IKVM 上,那么 .NET 開發者可以在 Java 代碼中使用自定義屬性。如果代碼運行在 IKVM 上,那么 Java 與 .NET 這兩個平臺都可以使用屬性。這樣,開發者就可以在 Java 代碼中使用 .NET 自定義屬性,也可以在 C# 類與成員中使用 Java 注解。

在背后,IKVM 的運行時與編譯器主要都是使用 C# 編寫的。Frijters 可以使用公開的 Java 代碼(來自于 GNU Classpath 與 OpenJDK 等)并替換掉托管代碼中的原生C代碼。如果用戶在應用中沒有使用原生代碼,那么使用了 IKVM 的 Java 應用就是完全可移植的,因為 IKVM 并未使用任何原生代碼。

目前,IKVM 已完全支持 Java 7,包括對新的指令 invoke dynamic 的支持。然而,Frijters 承認還有很多工作要做以提升新指令的性能。

查看英文原文:Running Java on NET/Mono: Jeroens Frijters Discusses IKVM.NET

來自: InfoQ

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!