1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Eclipse - Export - Jar

Dieses Thema im Forum "Java" wurde erstellt von flashray, 23. April 2006.

  1. flashray

    flashray Erfahrenes Mitglied

    Hallo Freunde,

    ich habe heute mal die Export Funktion von eclipse ausprobiert. Allerdings konnte ich keine lauffähife jar erstellen.

    Wie kann es sein obwohl ich beim Exportieren, die Mainclass auswähle, die jar folgende Fehlermeldung gibt?
    "could not find main class"

    Gibt es da noch irgendetwas besonderes worauf man achten sollte?

    Vg Erdal
  2. con-f-use

    con-f-use Erfahrenes Mitglied

    Bin ebenfalls daran verzweifelt mit Eclipse ein Lauffägis jar zu produzieren.

    Hab dann die Geduld verloren und mir dieses kleine Programm gemacht. Es macht alle jar im gleichen Verzeichnis lauffähig und hängt ein ".r" an den Dateinamen an, wenn es geklappt hat. Damit es klappt müssen die jar den gleichen Dateinamen, wie ihre Mainclass haben. Ist zwar nicht die Lösung deines Problems, aber vielleicht erspart es dir ein klein wenig Arbeit.

    Anhänge:

  3. Thomas Darimont

    Thomas Darimont Administrator

    Hallo!

    Mit Eclipse ein ausführbares Jar File zu erstellen ist ganz einfach:
    Hier mal exmplarisch anhand eines kleinen Beispiels unter Eclipse 3.2RC1:
    (Siehe Projekt im Anhang)

    Code (Java):
    1.  
    2. /**
    3.  *
    4.  */
    5. package de.tutorials.executableJarEample;
    6.  
    7. import javax.swing.JFrame;
    8.  
    9. /**
    10.  * @author Tom
    11.  *
    12.  */
    13. public class Main {
    14.  
    15.     /**
    16.      * @param args
    17.      */
    18.     public static void main(String[] args) {
    19.         JFrame frame = new JFrame("Main");
    20.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    21.         frame.pack();
    22.         frame.setVisible(true);
    23.     }
    24. }
    25.  
    Rechte Maustaste aufs Projekt -> Export -> Java -> Jar File -> Next
    Gewünschtes Projekt selektieren
    Export generated class files and resources selektieren
    Als export destination den Zielort für das jar angeben:
    Z.Bsp.: c:\executableJar.jar
    Compress contents of the jar selektieren
    -> next
    -> next
    Generate Manifest File selektieren (oder Use existing manifest from workspace, wenn eines manuell erstellt wurde)
    Select the class of the application entry point:
    -> Browse -> de.tutorials.executableJarEample.Main
    -> Finish

    Nun sollte auf eurem Laufwerk C eine ausführbare jar Datei mit dem Namen executableJar.jar existieren.

    In älteren Eclipse Versionen funktioniert das Erstellen von ausführbaren Jars analog.

    Gruß Tom

    Anhänge:

    Vereth sagt Danke.
  4. con-f-use

    con-f-use Erfahrenes Mitglied

    Hmm, okay, wenn man nur den Finish- und nie den Next-Botton sieht, ist es natürlich schwierig etwas lauffähiges mit Eclipse zu erstellen. Wäre mal eine Iteressante Studie wie sich bei "Computer-Kindern" die Wahrnehmung verändert.

    Mir hast du auf jeden Fall schonmal damit weitergeholfen. Danke!
  5. flashray

    flashray Erfahrenes Mitglied

    Hallo Tom,

    in der generierten Manifestdatei fehlen bei mir die Classpath-Einträge. Kann man das auch irgendwie einstellen, oder muss man bei Bedarf an Classpath einträgen im Manifest, die Manifestdatei selbst erstellen.

    @Confuse
    dank dir für dein Tool, wenns mit Eclipse klappt ists noch besser.

    Vg Erdal
  6. flashray

    flashray Erfahrenes Mitglied

    Hallo,

    habe hier nachgelesen das das mit dem einfachen Export nur funktioniert, wenn keine zusätzliches libraries eingebunden werden.

    http://www.torsten-horn.de/techdocs/java-eclipse.htm#Export-als-jar

    D.h. jetzt erstmal nur class-Dateien in ein jar-Köfferchen packen.
    Die restlichen libraries und resourcen in einem eigenen Ordner im selben Verzeichnis wie die jar unterbringen.


    Vg Erdal
  7. flashray

    flashray Erfahrenes Mitglied

    Hallo,

    bei mir funktioniert es jetzt, hab die Manifestdatei selbst erstellt, und das classpath eingetragen. Tue ich dann diesen, statt dem generierten benutzen ist die Welt in Ordnung.

    Vg Erdal
  8. DarthShader

    DarthShader Erfahrenes Mitglied

    Hallo flashray,

    ich weiß, dass der Thread schon ziemlich alt ist, aber ich habe dasselbe Problem: ein Projekt, welches von einer weiteren .jar Bibliothek abhängt.

    Wie muss denn die manifest Datei aussehen, damit ich mein gesamtes Projekt inkl. abhängigen jar Libs mit in die Jar Datei aufnehmen kann?

    Danke für Deine Hilfe
  9. inter

    inter Grünschnabel

    Hallo Shader,

    also hier (http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html) steht, dass es nicht ohne weiteres möglich ist jar-Files in jar-Files zu packen. Allerdings kannst Du den Inhalt von jar-Files nutzen, die im selben Verzeichnis liegen wie Dein ausführbares. Wie das geht steht da auch.

    Falls Du aber nur ein jar-File als Endprodukt brauchst, dann schau dir mal das "Fat Jar" Eclipse Plugin an (http://fjep.sourceforge.net/).
  10. ishino

    ishino Erfahrenes Mitglied

    Eine Alternative zum eingebauten JAR-Export:

    http://fjep.sourceforge.net/

    EDIT: Das Posting des Vorgängers bis zum Ende zu lesen hilft Spam zu vermeiden. :-}
  11. mxm

    mxm Grünschnabel

    Hallo,

    ich habe ein ähnliches Problem mit meiner ausführbaren Jar. Bisher habe ich immer die göbste Methode benutzt um externe Jars in meiner ausführbaren Jar verfügbar zu machen, indem ich die benötigten Jars ausgepackt habe und die class-Dateien in der Ordner-Struktur per Archive-Programm einfach hinzugefügt habe.

    Das klappte immer hervorragend. Nun aber wird auf einmal eine der class Dateien nicht mehr gefunden (NoClassDefFoundError), obwohl ich sie meiner generierten Jar sehen kann und sie in dem richtigen Ordner liegt.

    Hat jemand eine Idee woran es liegen kann oder wo mein Fehler liegt?

    Grüße,
    mxm
  12. Kulabac

    Kulabac Erfahrenes Mitglied

    Hmm, pack deine Jar-Datei doch mal aus und schau was dann passiert, also ob er die Klasse immernoch nicht findet. Und was du da siehst ist doch hoffentlich die .class-Datei und nicht .java :)

    Ansonsten: Beispielsweise im Prosyst-OSGi-Framework (da sind die einzelnen Bundles natürlich auch alles Jar-Dateien, die ausgeführt werden), bedeutet eine NoClassDefFoundError-Exception nicht, dass die Klasse nicht gefunden wurde, sondern dass "irgendeine" andere Klasse nicht gefunden wurde, die in der, die in der Exception genannt wurde, verwendet wird. Vielleicht ist das bei dir ja was ähnliches?

    Andere Idee wäre noch: Hast du vielleicht rein zufällig das Jar, wo du das rauskopiert hast, im Classpath stehen oder irgendwas anderes, wo eine Klasse den identischen Pfad und Namen hat? Das gibt manchmal auch die wunderlichsten Fehler, wenn Klassen doppelt vorhanden sind ... :)
  13. mxm

    mxm Grünschnabel

    Schön wärs, aber ganz so einfach ists leider nicht. :)

    Du hast Recht. Genau das ist bei mir der Fall. Ich hatte ich das auch schon beobachtet. Meiner Meinung nach müsste die in diesem Fall benutzende Klasse aber bereits enthalten gewesen sein. Habe aber noch mal alles neu eingefügt.

    Danke das wars wohl. Ich habe Classpath verändert und jetzt klappts erstmal wieder.

    Grüße,
    mxm
  14. 00d4vid

    00d4vid Grünschnabel

    In Eclipse gibt es auch die Funktion "Export runnable Jar-File", bei dem die kompletten libs mit exportiert werden.
    Hab das hier über Google gefunden und das ist auch eine Möglichkeit wie es geht.
  15. Hachmed

    Hachmed Gast

    danke für die Anleitung, das hat sehr geholfen!
  16. ulibehr

    ulibehr Grünschnabel

    einfach
    links Klasse anwählen
    dann export - executable jar File
    dann kann man anklicken, wie benutzte jars eingebunden werden sollen.

Diese Seite empfehlen