The IKVM.NET consists of multiple files:
Components of IKVM.NET
FileDescription
[Ikvm].exe
Starter executable, comparable to java.exe ("dynamic mode"). The Java application will start slow because all classes need to converted on the fly.
[Ikvmc].exe
Static compiler. Used to compile Java classes and jars into a .NET assembly ("static mode"). There are different classloader options.
[Ikvmstub].exe
A tool that generates stub class files from a .NET assembly, so that Java code can be compiled against .NET code. IKVM.NET understands the stubs and replaces the references to the stubs by references to the actual .NET types.
IKVM.Runtime.dll
The VM runtime and all supporting code. It contains (among other things):
IKVM.OpenJDK.*.dll
This are a compiled version of the Java class libraries, plus some additional IKVM.NET specific code.
ikvm-native.dll
Small unmanaged C library that is used by the JNI interface. This is an optional part, and on Windows it is only required when an application uses it's own native libraries. When running on Mono, this library is also used by the NIO memory mapped files implementation. This library ships as part of the Mono distribution and has been designed not to require any changes between IKVM versions, so if you download or compile a new version of IKVM, you don't necessarily need to update this native library.
IKVM.AWT.WinForms.dll
This are the AWT and Swing peers. This include the java.awt.Toolkit, fonts, images and more GUI stuff.
Wiki: ClassLoader
Wiki: FAQ
Wiki: Ikvm
Wiki: Ikvmc
Wiki: Ikvmstub
Wiki: User's_Guide