Bundle native Abhängigkeiten lauffähig .Glas mit Maven

Habe ich ein Projekt geschafft, in den Maven, der hat einige nativen Abhängigkeiten (LWJGL).

Funktioniert alles einwandfrei in der Entwicklung, aber das will ich jetzt einrichten, Maven, so dass Sie bauen eine runnable .jar-Datei, die ich weitergeben können. Insbesondere will ich, dass es sehr einfach für Benutzer, um die app auszuführen, ohne Durcheinander herum mit Bibliothek-Pfade "oder" unpacking native libraries, etc.

Derzeit bin ich in der Lage zu bauen .jar-Datei enthält alle Abhängigkeiten, aber wenn ich ihn dann (wenig überraschend), habe ich eine unbefriedigte link-Fehler:

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)

Offensichtlich kann ich machen, damit es funktioniert, indem Sie manuell die Installation der nativen Bibliotheken und ausführen der jar mit java -Djava.library.path=/path/to/libs aber das ist nicht etwas, was ich erwarten kann, meinen Benutzer zu tun.

Hier ist die pom.xml falls es relevant ist: https://github.com/mikera/glaze/blob/master/pom.xml

Ist es möglich, Maven, so dass es wird ein runnable .jar, enthält die native Abhängigkeiten und wird erfolgreich ausgeführt, wenn doppelt geklickt?

  • Was genau ist das problem? Können Sie Beispiele zeigen, die funktionieren nicht wie erwartet?
  • Kein OS ich weiss, Griffe-Glas (oder zip) Dateien als äquivalent zu den Datei-Systeme. So müssen Sie zum extrahieren, dass die native Bibliothek, bevor Sie geladen werden.
  • In der Vergangenheit habe ich beigelegt zur Montage einer GLAS - getrennt von Ihren Ressourcen und wie start-up-Skript setzt die notwendigen system-Eigenschaften (D. H. zu Punkt java.library.path am resources - Verzeichnis).
InformationsquelleAutor mikera | 2012-08-20
Schreibe einen Kommentar