IKVM.NET and JNBridgePro
We’ve seen a uptick of interest in JNBridgePro as developers search for a replacement for IKVM.NET, which was shelved earlier this year. This post discusses the differences, and why JNBridgePro might work for you.
IKVM.NET was an open source implementation of Java for both the Microsoft .NET Framework and for Mono. Developers used it to include Java libraries in their .NET applications and to build .NET applications in Java. It was started and largely implemented by Jeroen Frijters. Jeroen ceased development of IKVM.NET this past April, and users have been understandably concerned about the project’s ongoing support for future versions of Java and .NET. Hence the interest of users of IKVM.NET in migrating to another solution, like JNBridgePro.
IKVM.NET and JNBridgePro are based on very different technologies. IKVM.NET uses a cross-compilation technology to convert the Java binary code to MSIL and then run it on the .NET Framework. JNBridgePro is a bridging technology, where the .NET still runs in a CLR and the Java still runs in a JVM. While cross-compilation is an impressive feat, we are strongly biased towards the bridging approach. With JNBridgePro the .NET-side code and the Java-side code still run in their appropriate JVM/CLR runtimes, so that the behavior of the code should always be as expected. This may not always be the case with cross-compilation unless the tool designer is very careful.
JNBridgePro’s bridging mechanism also allows for more flexibility in the resulting application architecture. With JNBridgePro, the Java and .NET can run in the same process, or in separate processes either on the same machine or separate machines across a network.
Conversely, in IKVM.NET the Java and .NET sides must run in the same process, which does not allow for scenarios where it makes sense to separate the two runtimes.
For those looking for a replacement for IKVM.NET that supports efficient and flexible Java/.NET interop, you’ve come to the right place. We’re here for you, and are committed to support our interoperability as Java and the .NET Framework evolve. Feel free to dig deeper, contact us for more information, or download a free trial.