TeamDev Ltd. Home Page

JNIWrapper enables access to native libraries and components from Java code without using JNI.
The technology supports Windows platforms, Mac OS X (Mac PPC/Intel), multiple Linux platforms, all AIX versions and Solaris 10. JNIWrapper provides a number of technical advantages:

High Performance

JNIWrapper is capable of handling any large amount of data involved in interactions between the Java and native code, requiring no tuning on your side.

Automatic Memory Management

All resources allocated by JNIWrapper are released automatically when no longer needed. You can treat JNIWrapper variables as usual Java objects that can be picked up by the Java garbage collector. Besides, JNIWrapper objects are safe with regard to finalizers: all resources are guaranteed to be available during finalization.

Native Function Invocation

JNIWrapper supports both stdcall and cdecl calling conventions and multiple C/C++ data types including structures, unions, and pointers. Callbacks are fully supported with any parameter and return types and both calling conventions.

Extensible Architecture

You can implement new data types or customize existing ones, taking full control over the parameter behavior.

JNIWrapper Learn how you can benefit from JNIWrapper and save your time and money!

Buy online in few steps
Questions by email

Code Generation Wizard

Using the Code Generator wizard bundled with JNIWrapper, you can generate Java wrappers for a required set of C types, including structures, unions, and callbacks.

Catching Native Errors

When you call a native function, JNIWrapper makes all native errors ready for debugging on the Java side, putting program execution fully under your control.

Custom Search Mechanism

Apart from a default mechanism to find and load a native library, JNIWrapper provides a way to customize it. Besides, it makes it possible to load native libraries from JAR files.

Thread-safe Concurrent Function Invocation

You can perform all native function calls simultaneously from different Java threads without the need of synchronizing them, just as if invoking simple Java methods.