CustomClassLoader on Mac OS X was not working. The LWJGL library is called "liblwjgl.jnilib" yet System.mapLibraryName() returns "liblwjgl.dylib". Read bug reports that this is an error and the solution is to use JDK6 and that JDK7 is broken and everyone is hopeful that Oracle will fix it in JDK8. It does not work in JDK8. Looking at the native libraries the framework is using it appears that LWJGL provides some libraries in jnilib and others (openAL) in dylib. It seems that the default has changed from jnilib to dylib and LWJGL should be providing natives in the new format. One reason they might is that there is a severe performance bug in JDK7 relating to Swing and Applets. CustomClassLoader supports both now trying jnilib first and then falling back to dylib.