JNAerator is a computer programming tool for the Java programming language which automatically generates the Java Native Access (JNA) or BridJ code needed to call C, C++ and Objective-C libraries from Java code.
Developer(s) | Olivier Chafik |
---|---|
Stable release | 0.12
/ May 8, 2015 |
Repository | |
Written in | Java |
Operating system | Cross-platform |
Type | (library/API) |
License | LGPL |
Website | github |
It reads in ANSI C header files and emits Java code. Some optional customization can be done through command line options, which can be saved in configuration files.
JNAerator does not need any native compiling beyond that of the targeted dynamic library (all of the glue code is in Java), which helps simplify the process of binding Java to C native libraries when compared to Java Native Interface (JNI)-based means.
Its output is typically larger and harder to use than hand-crafted JNA bindings, but it saves time and effort for bindings of large libraries with JNA.
JNAerator Studio
editWhile JNAerator is mainly a command-line-based tool, it also contains a limited GUI that's ideal for simple quick generation experiments.
It can be launched from the Web using the direct WebStart link from the project's main page, or by double-clicking on JNAerator's JAR executable archive.
Uses
editNativeLibs4Java[permanent dead link] gathers a few JNAerator-generated Java wrappers for native libraries:
- JavaCL and OpenCL4Java, OpenCL library
- Mono4Java : Mono/.NET embedding API
- Mac OS X Frameworks, work being integrated to Rococoa
See also
edit- Gluegen, a similar tool used by the Java OpenGL (JOGL) project but needs compiling of native code and provides added runtime features such as argument bounds checks (this Wikipedia page was copied over and adapted from there)
- SWIG, another free computer software tool used to connect programs written in C/C++ with various scripting languages, and to C# and Java. It also needs native compiling.