There are 2 main ways to call external functions from Java: The Java Native Interface (JNI), or Java Native Access (JNA). Personally I've never worked with JNA before, but I have worked with JNI...