Giter Club home page Giter Club logo

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>

mes's Projects

bigdata icon bigdata

SQLite单表4亿订单,大数据测试

cacti.units icon cacti.units

Manage units with conversions and mathematical oprations. Code is generated through ISourceGenerator with Xml AdditionalFiles for units descriptions.

cap icon cap

CAP is a .net standard library to achieve eventually consistent in distributed architectures system like SOA or MicroService. It is lightweight, efficiently and easy to use.

cecil icon cecil

Cecil is a library to generate and inspect programs and libraries in the ECMA CIL form.

cellreport icon cellreport

CellReport 是一个以 复杂统计报表 为核心目标的制作、运行工具。利用集合运算弥补sql组织数据的不足。

ceresdb icon ceresdb

CeresDB is a high-performance, distributed, cloud native time-series database that can handle both time-series and analytics workloads.

chloe icon chloe

A lightweight and high-performance Object/Relational Mapping(ORM) library for .NET --C#

cloudb icon cloudb

A distributed network storage system

cloudscribe icon cloudscribe

ASP.NET Core Multi-tenant web application foundation

clrzmq icon clrzmq

CLR (.NET & Mono) binding for 0MQ

clrzmq4 icon clrzmq4

ZeroMQ C# namespace (.NET and mono, Windows and Linux, x86 and amd64)

cockroach icon cockroach

CockroachDB - the open source, cloud-native distributed SQL database.

code-inspector icon code-inspector

JavaWeb漏洞审计工具,构建方法调用链并模拟栈帧进行分析(由于作者精力有限,可能不会再更新这个项目)

codeproject.ai-server icon codeproject.ai-server

CodeProject SenseAI is a self contained service that software developers can include in, and distribute with, their applications in order to augment their apps with the power of AI.

cppsharp icon cppsharp

Tools and libraries to glue C/C++ APIs to high-level languages

crank icon crank

Benchmarking infrastructure for applications

crate icon crate

CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time.

csharpcc icon csharpcc

CSharpCC - A Compliler Compiler derived from JavaCC to produce LL(k) Parser/Lexer for .NET (C# syntax) [Unmaintained]

csharpier icon csharpier

CSharpier is an opinionated code formatter for c#.

d3 icon d3

Bring data to life with SVG, Canvas and HTML. :bar_chart::chart_with_upwards_trend::tada:

dbreeze icon dbreeze

C# .NET MONO NOSQL ( key value store embedded ) ACID multi-paradigm database management system.

deeplearning-500-questions icon deeplearning-500-questions

深度学习500问,以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,以帮助自己及有需要的读者。 全书分为18个章节,50余万字。由于水平有限,书中不妥之处恳请广大读者批评指正。 未完待续............ 如有意合作,联系[email protected] 版权所有,违权必究 Tan 2018.06

deveeldb icon deveeldb

DeveelDB is a complete SQL database system, primarly developed for .NET/Mono frameworks

deveelsql icon deveelsql

A library that encapsulates all the SQL functionalities in a generalized context.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.