IKVM 8.2.0

.NET Core 3.1 .NET Framework 4.6.1
Install-Package IKVM -Version 8.2.0
dotnet add package IKVM --version 8.2.0
<PackageReference Include="IKVM" Version="8.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add IKVM --version 8.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: IKVM, 8.2.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install IKVM as a Cake Addin
#addin nuget:?package=IKVM&version=8.2.0

// Install IKVM as a Cake Tool
#tool nuget:?package=IKVM&version=8.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

IKVM - Java Virtual Machine for .NET

Nuget GitHub

IKVM.NET is an implementation of Java for the Microsoft .NET Framework and .NET Core.

IKVM.NET 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
  • With IKVM.NET you can run compiled Java code (bytecode) directly on Microsoft .NET Framework or .NET Core. The bytecode is converted on the fly to CIL and executed.

Documentation

See the tutorial to get started or IKVM.NET In Details for a more in-depth look.

Support

  • .NET Framework 4.6.1 and higher
  • .NET Core 3.1 and higher
  • .NET 5 and higher
  • Java SE 8

IkvmReference

IKVM includes build-time support for translating Java libraries to .NET assemblies. Install the IKVM package in a project that wants to reference Java libraries. Use the IkvmReference ItemGroup to indicate which Java libraries your project required.

Example:

    <ItemGroup>
        <IkvmReference Include="..\..\ext\helloworld-2.0.jar" />
    </ItemGroup>

The output assembly will be generated as part of your project's build process. Additional metadata can be added to IkvmReference to customize the generated assembly.

  • Identity: The identity of the IkvmReference item can be either a) path to a JAR file b) path to a directory or c) an otherwise unimportant name.
  • AssemblyName: By default the AssemblyName is generated using the rules defined by the Automatic-Module-Name specification. To override this, do so here.
  • AssemblyVersion: By default the AssemblyVersion is generated using the rules defined by the Automatic-Module-Name specification. To override this, do so here.
  • DisableAutoAssemblyName: If true disables detection of AssemblyName.
  • DisableAutoAssemblyVersion: If true disables detection of AssemblyVersion.
  • FallbackAssemblyName: If AssemblyName is not provided or cannot be calculated, use this value.
  • FallbackAssemblyVersion: If AssemblyVersion is not provided or cannot be calculated, use this value.
  • Compile: Optional semi-colon separated list of Java class path items to compile into the assembly. By default this value is the Identity of the item, if the identity of the item is an existing JAR file or directory (not yet supported). MSBuild globs are supported to reference multiple JAR or .class files.
  • Sources: Optional semi-colon separated list of Java source files to use during documentation generation. (not yet supported)
  • References: Optional semi-colon separated list of other IkvmReference identity values to specify as a reference to the current one. For instance, if foo.jar depends on bar.jar, include both as IkvmReference items, but specify the identity of bar.jar on the References metadata of foo.jar.
  • Debug: Optional boolean indicating whether to generate debug symbols (non-portable). By default this is determined based on the overall setting of the project.
  • All other metadata supported on the Reference MSBuild item group definition.

IkvmReference is not transitive. Including it in one project and adding a dependency to that project from a second project will not result in the same reference being available on the second project. Instead add the reference to each project.

For each project to resolve to the same resulting assembly ensure their settings are identical.

    <ItemGroup>
        <IkvmReference Include="helloworld.jar">
            <AssemblyVersion>1.0.0.0</AssemblyVersion>
        </IkvmReference>
        <IkvmReference Include="helloworld-2.jar">
            <AssemblyName>helloworld-2</AssemblyName>
            <AssemblyVersion>2.0.0.0</AssemblyVersion>
            <References>helloworld.jar</References>
            <Aliases>helloworld2</Aliases>
        </IkvmReference>
    </ItemGroup>

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp3.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (76)

Showing the top 5 NuGet packages that depend on IKVM:

Package Downloads
TikaOnDotNet

Bare-bones IKVM Java-to-.NET port of Apache Tika. You'll want to install TikaOnDotNet.TextExtractor.

Stanford.NLP.CoreNLP

Stanford CoreNLP provides a set of natural language analysis tools which can take raw English language text input and give the base forms of words, their parts of speech, whether they are names of companies, people, etc., normalize dates, times, and numeric quantities, and mark up the structure of sentences in terms of phrases and word dependencies, and indicate which noun phrases refer to the same entities. Stanford CoreNLP is an integrated framework, which make it very easy to apply a bunch of language analysis tools to a piece of text. Starting from plain text, you can run all the tools on it with just two lines of code. Its analyses provide the foundational building blocks for higher-level and domain-specific text understanding applications.

Stanford.NLP.NER

Stanford NER (also known as CRFClassifier) is a Java implementation of a Named Entity Recognizer. Named Entity Recognition (NER) labels sequences of words in a text which are the names of things, such as person and company names, or gene and protein names. The software provides a general (arbitrary order) implementation of linear chain Conditional Random Field (CRF) sequence models, coupled with well-engineered feature extractors for Named Entity Recognition.

CuratorIkvm

Curator client library & recipes for Zookeeper. This is the IKVM version; which is to say that this is compiled from Java to .NET

NHtmlUnit

NHtmlUnit is a .NET wrapper of HtmlUnit; a "GUI-less browser for Java programs". It allows you to write code to test web applications with a headless, automated browser.

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on IKVM:

Repository Stars
vivami/SauronEye
Search tool to find specific files containing specific words, i.e. files containing passwords..
paulirwin/JavaToCSharp
Java to C# converter
fireshaper/Omnibus
Search for and download comics that are added to GetComics.info easily
Version Downloads Last updated
8.2.0 55 7/3/2022
8.2.0-prerelease3420 363 7/2/2022
8.2.0-prerelease2777 406 6/30/2022
8.2.0-prerelease2138 268 6/28/2022
8.2.0-prerelease1515 605 6/24/2022
8.2.0-prerelease0911 628 6/16/2022
8.2.0-prerelease0899 123 6/15/2022
8.2.0-prerelease0892 131 6/14/2022
8.2.0-prerelease0809 378 6/6/2022
8.2.0-prerelease0392 483 5/29/2022
8.1.5717 2,120,059 8/26/2015
8.0.5449.1 102,080 1/12/2015
8.0.5449 6,902 12/2/2014
7.4.5196 66,931 3/24/2014
7.3.4830 123,042 3/28/2013
7.2.4630.5 130,313 12/10/2012
7.1.4532.2 18,919 9/17/2012
7.0.4335 3,183 12/29/2011
0.46.0.1 29,595 8/24/2011