IKVM

{{Redirect|IKVM.NET|iKVM (Keyboard/Video/Mouse over IP)|KVM switch#KVM over IP (iKVM)}}

{{Infobox software

| name = IKVM

| logo =

| screenshot =

| caption =

| other_names = IKVM.NET

| author = Jeroen Frijters

| developer = Windward Studios, Jerome Haltom

| latest release version = {{wikidata|property|edit|reference|P348}}

| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}

| operating system = Cross-platform

| programming language = Java and C#

| genre = Java virtual machine, Java bytecode compiler and Java Library

| license = zlib License

| website = {{Official URL}}

}}

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.{{cite web |url=http://www.ikvm.net/license.html |url-status=dead |title=License |work=www.ikvm.net |archive-url=https://web.archive.org/web/20200222015515/www.ikvm.net/license.html |archive-date=2020-02-22}}

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.{{cite web |url=http://weblog.ikvm.net/2017/04/21/TheEndOfIKVMNET.aspx |title=The End of IKVM.NET |access-date=2017-07-22 |archive-date=2017-07-18 |archive-url=https://web.archive.org/web/20170718180358/http://weblog.ikvm.net/2017/04/21/TheEndOfIKVMNET.aspx |url-status=dead}} In 2018, Windward Studios forked IKVM.NET to continue development on the open-sourced IKVM.{{cite web |url=https://www.windwardstudios.com/blog/ikvm-is-alive-well |title=IKVM is alive & well |work=www.windwardstudios.com}} In 2022 Jerome Haltom and others picked up the work on a new GitHub organization and finished .NET Core support.{{cite web |url=https://github.com/ikvmnet/ikvm |title=IKVM - Java Virtual Machine for .NET |work=GitHub |date=27 August 2022}}

Components

IKVM includes the following components:

  • A Java virtual machine (JVM) implemented in .NET
  • A .NET implementation of the Java class libraries
  • A tool that translates Java bytecode (JAR files) to .NET IL (DLLs or EXE files).
  • Tools that enable Java and .NET interoperability

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.{{cite web |url=http://www.sumatrasoftware.com/ |title=Sumatra Software b.v. |access-date=2014-04-30}}

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".{{cite web |url=http://osdir.com/ml/java.ikvm.devel/2007-07/msg00013.html |title=osdir mailing list archive for java.ikvm.devel |access-date=2012-10-09 |url-status=dead |archive-url=https://web.archive.org/web/20121227142442/http://osdir.com/ml/java.ikvm.devel/2007-07/msg00013.html |archive-date=2012-12-27}}

Status

IKVM 8 implements Java 8.

The IKVM organization also maintains IKVM.Maven.Sdk,{{cite web |url=https://github.com/ikvmnet/ikvm-maven |title=IKVM.Maven.Sdk |work=GitHub}} 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.{{cite web |url=https://www.nuget.org/packages/IKVM.Maven.Sdk/ |title=IKVM.Maven.Sdk |work=www.nuget.org}}

See also

{{Portal|Free and open-source software|Computer programming}}

References

{{Reflist}}