# Probleme beim Export in eine Jar Datei



## haggard (19. Mai 2004)

Hallo, 

Jetzt habe ich mein erstes Projekt erstellt und würde es gern als ausführbare JAR Datei exportieren. Dazu benutze ich, wie schon zum erstellen des Projektes ECLIPSE. 

Ich habe also die Exportfunktion benutzt (bin den Anweisungen schritt für schritt gefolgt) und habe zwei JAR Dateien erzeugt. In den JAR Dateien ist ein Ordner editor bzw. viewer mit allen Klasse und ein Ordner images mit allen Bildern. Sowie ein Ordner für die Manifestdatei. Und natürlich die benutzte externe Bibliothek jdom. 

```
Die Struktur des Projektes sieht folgendermaßen aus: 
-Projekt 
   |-Package editor 
   |        |-editor.java                //main class 
   |        |-komponente.java 
   |        |-export.java 
   | 
   |-Package viewer 
   |        |-viewer.java               //main class 
   |        |-komponente.java 
   |        |-hinweisfenster.java 
   | 
   |-images       //ein Ordner (Package) mit Grafiken die 
                  //beide Packages benutzen 
   |-jdom.jar     //eine externe Bibliothek die ich auch bei
                  //beiden benutze
```
Nachdem erzeugen kann ich die editor.jar sogar schon per Doppelklick starten, nur werden mir keine Grafiken angezeigt. Damit die jdom.jar auch erkannt wird, habe ich die jdom.jar selbst hinzugefügt und habe in die Manifest Datei hineingeschrieben: 

Class-Path: jdom.jar 

Im Prinzip habe ich das gleiche auch bei der viewer.jar gemacht, jedoch bekomme ich den Fehler, das beim ausführen die main class nicht gefunden wird (ich habe sie aber angegeben, eben genauso wie ich es bei der editor Version gemacht habe).

So sieht die Manifestdatei des Editors aus: 
Manifest-Version: 1.0 
Main-Class: editor.editor 
Class-Path: jdom.jar 

Und so die des Viewers: 
Manifest-Version: 1.0 
Main-Class: viewer.viewer 
Class-Path: jdom.jar 

1.) Was habe ich falsch gemacht, dass die Grafiken nicht angezeigt werden? Kann man die vielleicht nochmal extra (manuell) hinzufügen, sodaß sie erkannt werden?

2.) Warum funktioniert die Viewer.jar nicht, obwohl ich genauso vorgegangen bin wie bei der Editor.jar, wirde mir ein "Main class nicht gefunden" ausgegeben?

Ich hoffe ihr könnt mir mal wieder helfen!

Haggard


----------



## Braunbär (26. Juli 2004)

*Helfer*

Hi,

ich hatte dasselbe Problem. Irgendwie hat die java VM nicht meinen Ordner namens "images" im Jar-File finden können. Was ich dann gemacht habe ist folgendes:

1.)meine java Dateien in einen separaten Ordner mit dem images Verzeichnis kopiert.
2.) extern von Eclipse meine *.java Dateien kompiliert (mit javac) und dann alle mit "jar cvf deinProgramm.jar *.class *.gif *.jpg images" zur jar-Datei gepackt. Images war hier also mein Verzeichnis mit den Bildern, das  somit gefunden wurde.
3.)bei mir war noch ein Nachtrag in der Manifest Datei notwendig, weil er mein Mainclass nicht gefunden hat.

Ok, vielleicht hilft das ein bisschen weiter.


----------



## Thomas Darimont (26. Juli 2004)

Kleines Beispiel mit Eclipse 3.0 und Ant:

1) Wir starten eclipse und erstellen ein neues Projekt namens work4java.
2) Wir klicken mit der rechten Maustaste auf work4java und gehen auf 
   Properties -> Java Build Path. Dort wählen wir dann work4java im rechten Fenster-
   bereich aus und klicken auf "add Folder" wo wir als Namen  src eingeben und den folgenden
   Message Dialog mit "yes" bestätigen. Anschließend klicken wir auf "ok".

3) Wir erstellen ein neues Package namens de.tutorials (im Src Verzeichnis)
4) Wir erstellen nun in src einen weiteres Package namens images wo wir unser Beispielbild Platzieren.
5) Nun rstellen wir im Package de.tutorials eine Klasse namens TestApp mit dem folgenden Inhalt:

```
package de.tutorials;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class TestApp extends JFrame {

    public TestApp() {
        super("TestApp");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        ImageIcon icon = new ImageIcon(TestApp.class
                .getResource("/images/Beispiel.jpg"));
        JLabel label = new JLabel(icon);
        getContentPane().add(label);
        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        new TestApp();
    }
}
```


6) Anschließend klicken wir im Package-Explorer auf unser Projekt und erstellen eine neue
   Datei namens build.xml mit folgendem Inhalt:


```
<project default="createJar">
   <target name="createJar">
      <jar destfile="theJar.jar" basedir="bin" update="yes">
         <manifest>
	     <attribute name="Main-Class" value="de.tutorials.ImageTest"/>	
         </manifest>
      </jar>
   </target>
</project>
```

7) Nun klicken wir mit der rechten Maustaste auf die Datei Build.xml und wählen
   run -> Ant Build aus.

Bauen lassen und fertig ist unser ausführbares Jar.
Das Jar namens theJar.jar findest du im Hauptverzeichnis des Projektes.

HTH
Gruß Tom

Im Anhang findet ihr das Beispielprojekt+bild


----------



## hankenberge (4. August 2004)

*jar Erstellung*

Das hat super geklappt,

danke
Ingo


----------

