Author Topic: .jar erstellen  (Read 1912 times)

Offline Socke

  • byte
  • *
  • Posts: 17
    • View Profile
.jar erstellen
« 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):


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.


« Last Edit: October 29, 2012, 10:05:12 pm by Socke »

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11769
    • View Profile
    • http://www.jpct.net
Re: .jar erstellen
« Reply #1 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.

Offline Socke

  • byte
  • *
  • Posts: 17
    • View Profile
Re: .jar erstellen
« Reply #2 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.

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11769
    • View Profile
    • http://www.jpct.net
Re: .jar erstellen
« Reply #3 on: October 30, 2012, 08:14:47 pm »
Steht eigentlich drin: 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

Damit kannst du eine Exe aus deinem Java-Programm erzeugen und auch einen Installer erstellen lassen, wenn du das möchtest.

Offline Socke

  • byte
  • *
  • Posts: 17
    • View Profile
Re: .jar erstellen
« Reply #4 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.

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11769
    • View Profile
    • http://www.jpct.net
Re: .jar erstellen
« Reply #5 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... ;)

Offline Socke

  • byte
  • *
  • Posts: 17
    • View Profile
Re: .jar erstellen
« Reply #6 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
« Last Edit: November 01, 2012, 02:32:41 pm by Socke »