ikvm.net簡介

ikvm.net是什麼

http://www.ikvm.net/java

ikvm.net是可以運行在mono和.net framework的java虛擬機。它包括了api

  • 在.net中實現的一個java虛擬機
  • java類庫的.net實現
  • java和.net的互操做工具

它能夠再.net中使用java庫。它包括一個ikvmc能夠講java字節碼轉換爲.net IL。若是你在.net application中引用java library 。app

ikvm如今最大化的實現了與jdk1.4的兼容。工具

引用java api 到.net 中

首先須要添加IKVM.Runtime.dllOpenJDK.ClassLibrary.dll到項目中,使用ikvmc將jar轉換爲.net dll。spa

ikvmc -target:library mylib.jar

例如我須要使用pdfbox在.net中調用,使用如下命令生成了PDFBox-0.7.3.dll.net

ikvmc -target:library PDFBox-0.7.3.jar

ikvm.net的組成

IKVM.Runtime.dll: VM運行時和全部支持代碼。
它包括如下的功能:code

  • Byte Code JIT 編譯器和驗證器: 使用JIT將Java Byte Code編譯爲IL。
  • 對象模式映射結構: 將.NET中的System.Object,System.String,System.Exception映射爲java代碼中的java.lang.Object, java.lang.String,java.lang.Throwable。
  • 管理本地方法(在Classpath中)的.NET從新實現。orm

  • *IKVM.GNU.Classpath.dll: 被編譯的GNU Classpath版本,它是由自由軟件基金會實現的java類庫和一些IKVM.NET附加代碼組成的。注意:這裏的GNU Classpath不是IKVM.NET的一部分,可是前者被用在IK.VM.NET中。
  • IKVM.JNI.[Mono|CLR-Win32].dll: 經過實現JNI接口管理C++彙編。做爲一個可選部分,只在程序使用本身的本地庫時才被用到。而對於純java程序來說是不會被用到的。
  • ikvm.exe: 與java.exe很相似的啓動執行程序(動態模式)。
  • ikvmc.exe: 靜態編譯器,被用來編譯java類和jar使其成爲.NET彙編(靜態模式)。
  • ikvmstub.exe: 一個從.NET彙編生成存根類的工具,就如javap同樣反編譯.NET彙編。IKVM.NET瞭解如何存根並用實際的.NET類型引用替換對存根的引用。
  • IKVM.AWT.WinForms.dll: 很是有限的零散AWT實現。對象

相關文章
相關標籤/搜索