JNAerator

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 and Objective-C libraries from Java code.

JNAerator
Developer(s)Olivier Chafik
Stable release
0.12 / May 8, 2015 (2015-05-08)
Repository
Written inJava
Operating systemCross-platform
Type(library/API)
LicenseLGPL
Websitegithub.com/nativelibs4java/JNAerator

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

While 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

NativeLibs4Java gathers a few JNAerator-generated Java wrappers for native libraries:

gollark: ↑
gollark: minoteaur™ does the modern thing of just having an in-process webßerver.
gollark: I thought this was going to be some sort of CLI program.
gollark: What could POSSIBLY go wrong.
gollark: Oh no. Not again.

See also

  • 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.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.