Java.Interop is a binding of the Java Native Interface for use from managed languages such as C#, and an associated set of code generators to allow Java code to invoke managed code.
This allows one to bridge code running on .NET's CLR and code running on a Java VM.
Note this does not mean that one can run Java code on .NET, or vice-versa.
Java.Interop currently does not ship independently. It is shipped as part of Microsoft's Xamarin.Android product, available via Visual Studio or .NET 6+. However, it is designed to be fully independent of Android and should be usable by other Java implementations. For other uses, please compile and distribute from source.
Some additional context for this project is documented in the Motivation and Architecture pages.
- The
main
branch is configured to build with .NET 7, available here. - The
release/6.0.3xx
branch is configured to build with .NET 6.
Java.Interop.sln
must first run some "preparatory" tasks before it can be built:
dotnet build -t:Prepare
Once Java.Interop.sln
has been prepared, it can be built in Visual Studio 2022 or with dotnet
:
dotnet build
Additional build options are documented here.
This project welcomes issues and PRs.
- File an issue in GitHub Issues.
- Discuss development and design on Discord.
- Coding style is outlined in Coding Guidelines.
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.
Copyright (c) .NET Foundation Contributors. All rights reserved. Licensed under the MIT License.