I'm working on [a source-code visualization project](http://github.com/rictic/code_swarm/tree/master/) that uses the Processing core library. The processing library has the option to use the jogl OpenGL library to render graphics which really improves performance. However, the JNI files that jogl uses aren't necessarily available at runtime, depending on who is using the project and on what platform.

Currently we just have the user specify if they want to use OpenGL, but it would obviously be much nicer if we could use OpenGL by default and only fall back to software rendering when it's not available. The Processing libraries don't seem to make this easy, you're only supposed to specify a renderer once, and changing renderers gives… novel behavior.

Any idea how to figure out if the necessary JNIs for jogl are available and working at runtime?