Решение java.library.path не всегда хорошо: во многих ситуациях невозможно изменить параметры JVM. Лучшие решения:
1) уже упоминалось: поместите DLL в тот же каталог, что и JAR, к сожалению, это усложняет использование такого JAR - теперь JAR - не просто JAR, а сопровождающая его DLL
2) поместите DLL в JAR как обычный ресурс, во время запуска JAR извлеките эту DLL куда-нибудь, например. $ TMP, а затем используйте System.load (новый файл (...)), как указано выше. Тогда этот JAR - просто JAR, пользователи этого JAR могут даже не знать, что он использует какие-либо DLL
Вы также можете использовать плагин Maven NAR, который является довольно мощным, если вы используете Maven для сборок. Смотри http://duns.github.com/maven-nar-plugin/