BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

Update on IKVM, a JVM for the Common Language Runtime

by Jonathan Allen on Jan 20, 2010 |

The goal of IKVM is to add Java support to the Common Language Runtime in two ways. In dynamic mode Java byte code is reinterpreted as IL code at runtime. In static mode, Java source code is compiled into IL instead of Java byte code. Running in either mode, IKVM seeks to be a nearly full implementation of the Java specification. Aside from some libraries that are not yet implemented, the major difference is that class loading in static mode will not exactly match the JVM behavior.

IKVM consists of a number of components.

  • ikvm: A started executable used in dynamic mode. One could think of it as the CLR version of java.exe
  • ikvmc: A static compiler that is used to compile Java classes and jars into .NET assemblies under the static mode paradigm.
  • ikvmstub: This tool is used to create class files that act as stubs for .NET classes that a Java program needs.
  • IKVM.Runtime.dll: This is the VM runtime itself. In addition to the just-in-time byte code to IL converter it handles the mapping between the Java and .NET object model.
  • IKVM.OpenJDK.*.dll: This is the “compiled version of the Java class libraries, plus some additional IKVM.NET specific code.”
  • ikvm-native.dll: A unmanaged C library needed for the JNI interface.
  • IKVM.AWT.WinForms.dll: This contains the AWT and Swing peers.

IKVM is currently in release candidate 3. You can see the current list of known issues and incompatibilities on the IKVM blog.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

IKVM rocks by mikhail franco

I had to use IKVM to port a complex project using Jetty, JAXB and countless other 3rd party libraries - it just worked.

The coverage and completeness was way beyond my expectations. It was also simple to understand, configure and start using. It was such a pleasure (and a relief) to find something that delivered so much value without any Sturm und Drang.

Total respect to the IKVM team.

Mik

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT