Using Java API's in .NET Applications

This section discusses information of interest to developers who want to use Java API's in their .NET applications.


IKVM makes it possible to develop .NET applications that use Java API's. Here's how to proceed:

  1. IKVM comes with an implementation of the Java class libraries in .NET. To use those API's, simply add a reference to IKVM.OpenJDK.ClassLibrary.dll to your Mono / .NET IDE project.
  2. To use other Java API's, you can take one of the following approaches:
    • Convert the Java API to .NET CIL using ikvmc. This produces a .NET dll that you can reference in your project.
    • Use the Java reflection API's to dynamically load and execute the Java bytecode using the IKVM bytecode interpreter. For example, your application can load Java bytecode over a network connection and execute it dynamically.

Java / .NET Interoperability Issues

When calling Java API's from a .NET language such as C#, you will need to know how to deal with the gap between the .NET and Java object models. For example, Java and .NET both have their own String class, primitive wrapper classes, exception hierarchy, and so on. Eventually, that information will be included in this manual. For now, you can use the following as resources:

  • The IKVM WebLog has several helpful entries. The series from February 29 - March 10 describe the object model.
  • The hodgepodge sample in the sample distribution is a simple demonstration of using Java API's from a C# application.
  • The IKVM source code is the ultimate reference, of course.

Subclassing Java Code

See IKVM Weblog Article: March 9