# Projekt ausführbar machen? OpenGL, Texturen etc packen



## breytex (21. Februar 2011)

Hallo zusammen!

Ich arbeite an einem kleinen Spiel in Java (BlueJ Editor) mit OpenGL.
Das Spiel läuft soweit, ich bin mit der Performance zufrieden, und würde das ganze gerne mal als richtiges "Programm" fertigstellen.

In BlueJ kann ich ja eine ausführbare Jar-Datei erstellen,
jedoch missfällt mir, dass die ganzen Texturen etc nicht mitgepackt werden.

Ich habe, nach dem Erstellen der "Jar-Datei", welche die Klassen und Bibliotheken enthält, noch ein ganzes Verzeichnis voll mit Sounddateien, Texturen, und anderen jar dateien, welche im gleichen Verzeichnis liegen müssen, wie die von mir erstellt "game.jar", damit das spiel überhaupt startet. Z.b. liegen da noch die jar-dateien: 
"gluegen-rt.jar" und "jogl.jar".

Auch müssen für OpenGL noch 4 *.dll Dateien im system32 Ordner platziert werden, damit sich das Spiel starten lässt. ("jogl.dll" z.b.)

Gibt es eine Möglichkeit, ggf mit einem "anderen Programm" eine ausführbare Datei zu erstellen, die alles enthält?
Also, ich dachte da jetzt nicht unbedingt an ein Installationsscript (wäre die letzte Lösung für mich), sondern eher an etwas, was mir eine schöne .exe oder .jar generiert, die einfach alle nötigen Dateien schon enthält...
Gerade das mit den system32 Dateien stört mich ein bisschen - ist irgendwie uncool, wenn man ein Spiel runterläd, und dann selbst noch Dateien irgendwohin verschieben muss, oder?

Kann mir da jemand helfen?
Danke 
lG
breytex


----------



## genodeftest (21. Februar 2011)

Ich fürchte mal, dass BlueJ das nicht kann und du auf Eclipse oder Netbeans umsteigen musst. Ich benutze BlueJ nicht (und habe es noch nie in Betrieb gesehen), aber es wird oft als stark eingeschränkte IDE beschrieben. 
Außerdem ist es nicht empfehlenswert, Dateien (wie deine .dll) in Systemordner zu kopieren, da dies in verschiedenen Betriebssystemen (aus Sicherheitsgründen) blockiert ist.

Stattdessen könntest du ein ZIP-Archiv erstellen, das der Nutzer nur noch entpacken muss. Die Bibliotheken (DLL unter Windows, lib*.so auf fast allen anderen Betriebssystemen) kannst du auch anders laden:
- du könntest den Pfad, in dem die Bibliothek liegt, zum "Ladepfad" hinzufügen, dazu gibt es den Java-Startparameter -Djava.library.path. Dein Programm müsste dann mit einer Verknüpfung unter windows oder einem shell-script unter unix gestartet werden.

- du könntest die Bibliotheken direkt aus deinem JAR-Archiv heraus laden, aber das ist davon abhängig, wie die Bibliothek im Code geladen wird.


----------



## Matt297 (21. Februar 2011)

Es gibt auch ne Menge Java-Exe-Generator, die dir ne komplette Exe aus deiner Jar bauen, wie weit das geht, ob auch Bibliotheken mit gepackt werden, kann ich dir nicht sagen, ich hab das noch nie ausprobiert. Aber vielleicht ist ja was dabei, was dir hilft, einfach googlen, oder hier ist mal eine Seite, mit mehreren Tools.

Gruß
Mat


----------



## genodeftest (21. Februar 2011)

launch4j soll sehr gut sein


----------

