Я только что попытался заставить тот же самый пример работать на моем CentOS и получил ту же ошибку, что и вы.Как уже было сказано, JVM не удалось найти нужный файл.Мне удалось заставить его работать, выполнив следующие шаги, используя gcc:
$ javac Sample1.java
$ javah Sample1
$ # Include paths must also be specified using -I option in the following gcc command line!
$ gcc -shared -I...snip... Sample1.c -o libSample1.so
$ # Library path for libSample1.so must also be specified!
$ java -Djava.library.path=...path/to/libSample1.so... Sample1
Если вы пропустите префикс "lib" разделяемой библиотеки, JVM по какой-то причине не сможет его найти.Я не знаю почему.Я не знаком с соглашением об именах разделяемых библиотек в Linux.
Надеюсь, этот пост может помочь.