JNIEasy 1.1, the Java Native Objects solution, a JNI full replacement using Java only and POJOs, introduces Linux x86 support.
This release introduces innovations oriented to develop native based Java applications running cross-platform. The objective is simple: one native Java element - multiple native layouts selected on runtime.
JNIEasy introduces a C/C++ "inspired" macro system (like the C #if-defined-#else-#endif construction): on runtime a defined or not defined macro changes the native layout selection of a JNIEasy based Java element adapted to the subjacent platform (C/C++ compiler, operating system...). Example: "Windows:2;Linux:4;default_wchar_t" means: if "Windows" macro is defined the selected value is 2, else if "Linux" is 4, else is the "default_wchar_t" macro value.
The JNIEasy's macro system can be applied to the name of DLL/shared object used (e.g. MSVCRT.dll in Windows, libc.so.6 in Linux), exported names (compilers have a different name mangling), primitive sizes/alignments (now they are user defined) and string encodings (ANSI/UNICODE).
Other improvements:
- A special runtime license with no time limit can be used and distributed with open source projects developed by owners of development licenses.
- Varargs support (to call C/C++ methods like printf)
- DLL/shared objects are searched using java.library.path
- License file can be located with JNIEASY_LICENSE_DIR optionally.
- C/C++ provided examples can be recompiled with Visual C++ 6+, MinGW/MSYS, cygwin and Linux gcc.
- CodeBlocks dependency removed.
- Manual, javadocs and tutorial revised, improved and updated.
Detailed release notes
JNIEasy is FREE to personal and non-profit uses with a renewable evaluation license with no registry.
Never the WORA was so accessible... What do you think about this WORA approach?