У меня есть проект, управляемый в Maven, который имеет некоторые собственные зависимости (LWJGL).
Все отлично работает в разработке, но теперь я хочу настроить Maven так, чтобы он создавал исполняемый файл .jar, который я могу перераспределить. В частности, я хочу, чтобы пользователям было очень легко запускать приложение без необходимости путаться с путями библиотек или распаковывать собственные библиотеки и т.д.
В настоящее время я могу создать файл .jar, который включает все зависимости, но если я запустил его (неудивительно), я получаю неудовлетворенную ошибку ссылки:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.libr
ary.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.lwjgl.Sys$1.run(Sys.java:73)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:95)
at org.lwjgl.Sys.<clinit>(Sys.java:112)
at org.lwjgl.opengl.Display.<clinit>(Display.java:132)
at glaze.TestApp.start(TestApp.java:10)
at glaze.TestApp.main(TestApp.java:31)
Очевидно, я могу заставить его работать, вручную устанавливая собственные библиотеки и запуская банку с помощью java -Djava.library.path=/path/to/libs
, но это не то, что я могу ожидать от моих пользователей.
Здесь pom.xml в случае, если это релевантно: https://github.com/mikera/glaze/blob/master/pom.xml
Можно настроить Maven так, чтобы он создавал runnable.jar, который включает в себя собственные зависимости и успешно запускается при двойном щелчке?