Вероятно, не тот ответ, который вы ищете (извлечение файла во временную папку - это ответ, который вы ищете), но я подумал, что поделюсь некоторым реальным опытом:
Сантехника, необходимая для извлечения библиотеки из jar, после чего она должна быть очищена, не конфликтует с другими приложениями, которые могут использовать jar и т. Д., Очень сложная задача.Это можно сделать, но велика вероятность того, что вы получите либо тонны временных копий своих библиотек, загромождающих систему пользователя, либо столкнетесь с конфликтами между несколькими приложениями, использующими библиотеки.
Когда вы добавляете тот факт, что многие операционные системы не позволяют использовать какой-либо файл в качестве библиотеки (и часто разрешения для пользователя, который будет запускать ваше приложение, не позволяют им помечать произвольный файл во временной областипапка для выполнения), идея упаковки собственных библиотек внутри jar становится менее привлекательной.
В итоге мы перешли к модели, в которой у нас есть наш установщик (который делает запустить с достаточными разрешениями) поместите соответствующую нативную библиотеку рядом с флягой.Это довольно просто сделать, хранить все исполняемые библиотеки в одном месте и легко администрировать и понимать (пытаясь отследить несовместимость версий в одном приложении, он пытается загрузить библиотеку, которая была сохранена во временном хранилище).по второму заявлению это полный кошмар).