The easiest way to access C libraries from Java is JNA. You create a Java interface that is isomorphic with the parts of the C API you wish to use, and then JNA does the rest. This means that you only have to update methods directly pertinent to you when the API changes.
https://github.com/twall/jna/blob/master/README.md
SWIG is harder to use, but JNA can be a dead end if you find yourself needing to improve performance. JLLVM is a SWIG-based tool, so you might consider referencing it or forking it for your own purposes.
Don't use basic JNI – choose between SWIG or JNA.
Blindly relying on third-party wrappers with minimal history is a dicey proposition, but if you deliberately treat such a project as a starting point, you can't go wrong.
With both technologies, you'll occasionally have to go digging around for enum constants. If they're not easy to read from header files, you'll want to write a simple C program that prints out the constants you're interested in, so you can manually copy them to your Java interfaces.