Loading a native library in Java on Windows

I’ve been struggling a bit with Java on Windows when I have needed to load a native library required by the application I’m currently working on (believe it or not a Java desktop application. Yes they still exist! :) There are several options:

  1. Load from an explicitly specified absolute path using the System.load call.
  2. Make sure the DLL is in one of the paths listed in “java.library.path”
  3. Handy tip: if running IntelliJ grab the code from this gist and use it for a new Scratch file. Easy way to get the value for your java.library.path.
  4. Modify the Windows system PATH environment variable to include the folder where the DLL is stored.
  5. Passing the “java.library.path” on the command line to the java runtime by using the -D option.

The best resource I found that helped me a lot was this page from Chilkat Software (and where the 4 items above were directly cribbed from! Thank you!).