Вот в такой ситуации у меня получилось следующее, по шагам:
1. Берем target.dll и декомпилируем ее, в результате получаем target.h — файл.
2. Берем target.so для Linux и так же декомпилируем ее, в результате получаем target-linux.h — файл.
3. Сравниваем их(мне повезло и они одинаковые более менее по сигнатурам функций и константам).
4. Скармливаем вот этой утилите —
JNAerator, она нам выдает Java-код для вызова с помощью фреймворка JNA
5. Рефакторим сконструированный Java — код и работаем с ним(у меня получилось что функции в сгенерированном коде чуть отличаются по названиям)
6. Пишем декоратор для предыдущей реализации.
Ну вот и все!