Как бы то ни было, у меня был такой проект некоторое время назад. Было довольно легко автоматически генерировать оболочки JNI. Я думаю, у нас было около 350 экспортов функций для упаковки. Нам потребовалось около 3 часов, чтобы составить сценарий для автоматической генерации оболочки (извините, у вас нет удобного сценария, иначе я бы его опубликовал).
Мы сами почти не писали код на C ++ - но это действительно требовало понимания того, как работает JNI ... На самом деле это хорошая возможность / проект обучения - если у вас есть время, не бойтесь JNI - вы будете поражен тем, как много вы узнаете о том, как работает JVM ...
Если вы пойдете по этому пути, я рекомендую вам сохранять свои функции-обертки действительно очень легкими - буквально не обрабатывать их вообще. Просто преобразуйте необходимые аргументы из значений JNI в native (это в основном необходимо для строк), вызовите собственную функцию и преобразуйте результаты обратно.
Если у вас есть функция, которая передает указатель на строку и ожидает, что строка вернется в указатель, используйте массив строк размером 1 со стороны Java и заполните его результатом собственного вызова.
Или, если вам не хватает времени, скомпилируйте ваш .lib в .dll и используйте JNA: -)