IKVM

Last updated
IKVM
Other namesIKVM.NET
Original author Jeroen Frijters
Developers Windward Studios, Jerome Haltom
Stable release
8.14.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 1 October 2025;20 days ago (1 October 2025)
Repository
Written in Java and C#
Operating system Cross-platform
Type Java virtual machine, Java bytecode compiler and Java Library
License zlib License
Website ikvm.org OOjs UI icon edit-ltr-progressive.svg

IKVM (formerly IKVM.NET) is an implementation of Java for Common Language Infrastructure implementations such as Mono and the Microsoft .NET Framework. IKVM is free software, distributed under the zlib permissive free software license. [2]

Contents

Work started on IKVM early in 2000 to assist migration of a Java-based reporting package from Sumatra to Microsoft .NET. The original developer, Jeroen Frijters, discontinued work on IKVM in 2015. [3] In 2018, Windward Studios forked IKVM.NET to continue development on the open-sourced IKVM. [4] In 2022 Jerome Haltom and others picked up the work on a new GitHub organization and finished .NET Core support. [5]

Components

IKVM includes the following components:

IKVM can run compiled Java code (bytecode) directly on Microsoft .NET or Mono. The bytecode is converted on the fly to CIL and executed.

By contrast J# is a Java syntax on the .NET framework, whereas IKVM is effectively a Java framework running on top of the .NET framework.

Jeroen Frijters was the main contributor to IKVM. He is Technical Director of Sumatra Software, based in the Netherlands. [6]

Name

The "IKVM" portion of the name is a play on "JVM" in which the author "just took the two letters adjacent to the J". [7]

Status

IKVM 8 implements Java 8.

The IKVM organization also maintains IKVM.Maven.Sdk, [8] an extension to the .NET PackageReference system that allows direct references to and transpiling of Maven artifacts. IKVM.Maven.Sdk is also available on NuGet.org. [9]

Example

The following is a .NET application written in Java, which prints the list of files in the current directory.

Note that in IKVM, the System.* namespace in .NET is written as cli.System.*. [10]

packageorg.wikipedia.examples;importcli.System.IO.*;publicclassExample{publicstaticvoidmain(String[]args){String[]files=Directory.GetFiles(".");for(Stringfile:files){System.out.println(file);}}}

See also

References

  1. "Release 8.14.0". 1 October 2025. Retrieved 20 October 2025.
  2. "License". www.ikvm.net. Archived from the original on 2020-02-22.
  3. "The End of IKVM.NET". Archived from the original on 2017-07-18. Retrieved 2017-07-22.
  4. "IKVM is alive & well". www.windwardstudios.com.
  5. "IKVM - Java Virtual Machine for .NET". GitHub . 27 August 2022.
  6. "Sumatra Software b.v." Retrieved 2014-04-30.
  7. "osdir mailing list archive for java.ikvm.devel". Archived from the original on 2012-12-27. Retrieved 2012-10-09.
  8. "IKVM.Maven.Sdk". GitHub .
  9. "IKVM.Maven.Sdk". www.nuget.org.
  10. "IKVM Tutorial". ikvm.org. Windward Studios, Jerome Haltom. 2023.