JNIWrapper is a Java library for calling native library functions. With JNIWrapper, you can extensively use the potential of the underlying platform (like tray icons or custom shape splash screens) with only a single native library, having the full control over the program flow on the Java side.
JNIWrapper provides simplified access to native code from Java applications without using Java Native Interface (JNI.) You don't need to create a native library to make system calls or spend time on learning the low-level ins and outs of the system architecture.
JNIWrapper supports both stdcall and cdecl calling conventions and multiple C/C++ data types including structures, unions, and pointers. You can perform all native function calls simultaneously from different Java threads without synchronizing them. The product supports thread-safe concurrent function invocation?
JNIWrapper is capable of handling any large amount of data involved in interactions between the Java and native code, requiring no performance tuning on your part. JNIWrapper allows you to debug native errors on the Java side, putting program execution fully under your control.
All resources allocated by JNIWrapper are released automatically. You can treat JNIWrapper variables as usual Java objects that can be picked up by the Java garbage collector.
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.
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:
You can implement new data types or customize existing ones, taking full control over the parameter behavior.
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.
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.
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.
JNIWrapper has a number of technical advantages over the competitors. The most important of them are:
JNIWrapper supports both stdcall and cdecl calling conventions and all complex C types including structures and unions. Callbacks are fully supported with any parameter and return types and both calling conventions. For unexpected cases, you can create your own types taking full control over parameter behavior.
This has always been our priority. JNIWrapper has been specially tuned for performance, particularly in cases where large amounts of data are involved in the interactions.
You should always be able to see and understand what is happening when they work with native-side data. This helps both to develop and debug complex interactions between Java and native code.The product is extensively used in the projects carried out by our company, which ensures its efficiency, reliability, future support, and improvement.