www.jpct.net

General => German corner => Topic started by: Socke on October 29, 2012, 09:58:57 pm

Title: .jar erstellen
Post by: Socke on October 29, 2012, 09:58:57 pm
Hi,
wie bekomme ich eine lauffähige jar aus Eclipse wieder raus? Der Thread mit dem Jarmaker hat mir nicht geholfen. Das Ding nimmt die Hälfte nicht mit.

Aus Eclipse mit "Runnable Jar File" werden wohl die .dlls nicht gefunden.

So siehts aus in Eclipse (da läufts auch):
(http://www.bilder-hochladen.net/files/thumbs/45u7-31-f093.png) (http://www.bilder-hochladen.net/files/45u7-31-f093-png.html)

Diese Fehlermeldung bekomme ich.
Code: [Select]
G:\EDITOREN\kart\kart.0.0.1>java -jar kart.0.0.1.jar
Loading Texture...texturen/GrassSample2.jpg
Loading Texture...texturen/box.jpg
[ Mon Oct 29 21:52:12 CET 2012 ] - ERROR: File 'texturen/box.jpg' not found - re
placement texture used instead!
Java version is: 1.7.0_06
-> support for BufferedImage
Version helper for 1.5+ initialized!
-> using BufferedImage
Software renderer (OpenGL mode) initialized
Software renderer disposed
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.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:135)
        at com.threed.jpct.GLHelper.findMode(Unknown Source)
        at com.threed.jpct.GLHelper.findMode(Unknown Source)
        at com.threed.jpct.GLHelper.init(Unknown Source)
        at com.threed.jpct.GLRenderer.init(Unknown Source)
        at com.threed.jpct.FrameBuffer.enableRenderer(Unknown Source)
        at com.threed.jpct.FrameBuffer.enableRenderer(Unknown Source)
        at com.threed.jpct.FrameBuffer.enableRenderer(Unknown Source)
        at main.WorldRenderer.renderWorld(WorldRenderer.java:77)
        at main.WorldRenderer.<init>(WorldRenderer.java:32)
        at main.KartMain.<init>(KartMain.java:12)
        at main.KartMain.main(KartMain.java:16)
        ... 5 more

Achja und so sieht die .jar aus. Ist eigentlich alles drin was man so braucht.

(http://www.bilder-hochladen.net/files/thumbs/45u7-32-a97d.png) (http://www.bilder-hochladen.net/files/45u7-32-a97d-png.html)
Title: Re: .jar erstellen
Post by: EgonOlsen on October 30, 2012, 07:03:47 am
Ich bin nicht sicher, aber nach dem was ich so kenne und eben nochmal kurz im Netz nachgelesen habe, geht das nicht. Du müsstest die DLLs beim Starten aus dem Jar von Hand (d.h. der eigenem Code) an eine Stelle umkopieren, wo sie von der VM automatisch gefunden werden. Oder eben einzeln deployen und alles per Batch-Datei starten.
Title: Re: .jar erstellen
Post by: Socke on October 30, 2012, 05:53:48 pm
OK über die Konsole mit dem -D Parameter startet es. Müsste dann gucken ob ich mir eine Binary mit C schreibe. Batch ist hässlich  ;D

Quote
java -Djava.library.path=C:\pfadmitdendlls\lib\dll -jar meine.jar

Wäre das nicht was fürs Wiki? Ich denke ein Spiel oder was auch immer das nur aus Eclipse läuft ist recht sinnlos.
Title: Re: .jar erstellen
Post by: EgonOlsen on October 30, 2012, 08:14:47 pm
Steht eigentlich drin: http://www.jpct.net/wiki/index.php/How_to_install (http://www.jpct.net/wiki/index.php/How_to_install)

Alternativ könntest du dir JET anschauen. Das aktuelle Angebot für 10€ ist wirklich günstig: http://www.jpct.net/forum2/index.php/topic,3021.0.html (http://www.jpct.net/forum2/index.php/topic,3021.0.html)

Damit kannst du eine Exe aus deinem Java-Programm erzeugen und auch einen Installer erstellen lassen, wenn du das möchtest.
Title: Re: .jar erstellen
Post by: Socke on October 30, 2012, 09:38:49 pm
Exe aus jar habe ich bis jetzt immer mit JSmooth gemacht. Ist kostenlos und ging eigentlich immer. Wie das jetzt mit den DLLs ist werd ich mir mal am Donnerstag angucken. Ansonsten sind das auch nur ein paar Zeilen C++. Hab auch irgendwo rumliegen.
Title: Re: .jar erstellen
Post by: EgonOlsen on October 30, 2012, 09:49:52 pm
JET hat den Vorteil, dass es den Kram nativ kompiliert. D.h. du brauchst keine VM mehr installiert zu haben oder mitzuliefern. Dafür schleppt es die JET-Runtime mit rum, die jetzt auch nicht unbedingt viel kleiner ist... ;)
Title: Re: .jar erstellen
Post by: Socke on November 01, 2012, 12:19:51 pm
Klingt interessant dieses JET.

Ich habe jetzt noch eine ganz einfache Möglichkeit gefunden die dlls zu laden. Steht so ähnlich auch auf der lwjgl Seite. Muss als erstes in der Main stehen.

Code: [Select]
System.setProperty("org.lwjgl.librarypath",new File("lib/dll/").getAbsolutePath());
Neben der .jar habe ich noch das Verzeichnis /lib/dll