Probleme mit JAR-Datei-Erstellung unter Eclipse

AngeloH

Mitglied
Hallo,
ich habe ein Problem, mit Eclipse ein Runnalbe JAR File zu erstellen, in das auch Bilddateien hineinkommen sollen. Bevor ich mich heute in diesem Forum registriert habe, habe ich natürlich gegoogelt und viele Posts zu diesem Thema entdeckt. Aber mit keinem einzigen bin ich der Lösung einen Schritt näher gekommen. Also versuch ich es mal auf diesem Wege. Ich habe folgendes Programm
Java:
 package forum.beispiel;
import javax.swing.*;
import java.awt.*;
public class Gui {
   public static void main(String[] args) {
      MeinPanel my_panel = new MeinPanel();
      JFrame my_frame = new JFrame();
      my_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      my_frame.add(BorderLayout.CENTER, my_panel);
      my_frame.setSize(300,300);
      my_frame.setVisible(true);
   }
}
class MeinPanel extends JPanel {
   public void paintComponent(Graphics g) {
      Image my_image = new ImageIcon(getClass().getResource("bild.jpg")).getImage();
      g.drawImage(my_image, 40, 40, this);
   }
}

Die Bilddatei bild.jpg liegt im Ordner, wo auch die class-Dateien sind, also in bin/forum/beispiel. Wenn ich mein Programm mit dem run-Button starte, macht es genau das, was es soll. Wenn ich aber über File|Export|Runnable JAR File gehe, dann wird eine JAR-Datei erstellt, die die Datei bild.jpg nicht enthält. Muss ich vielleicht unter Eclipse noch irgendwo einen Pfad einstellen, damit Eclipse weiß, wo noch Bilddateien sind, die dem Archiv hinzugefügt werden sollen?
 
G

Gast2

Gast
Leg die Datei einfach in den Ordner src. Dann sollte die automatisch ins bin Verzeichnis und in deine jar Datei kopiert werden. Oft leg man solche Dateien aber auch in nen eigenen source folder der dann resource heißt.
 

AngeloH

Mitglied
Habe ich schon gemacht. Ich habe die Bilddatei in jeden möglichen Ordner innerhalb der Projekt-Struktur gepackt. Aber im JAR-File ist sie nicht enthalten.

Ich habe übrigens auf Kommandozeileneben mithilfe des jar-Kommandos und einer Manifest-Datei genau dieses Package in ein JAR packen können. Da war das Bild drin und die JAR-Datei ließ sich mit einem Doppelklick ohne Probleme ausführen. Da ich aber nicht immer über die Kommandozeile gehen möchte, bin ganz stark daran interessiert, dass es auch unter Eclipse machbar ist.
 

Michael...

Top Contributor
kann man beim Exportieren nicht mit angeben/selektieren was exportiert werden soll? bzw. wenn man auf unterster Packageebene oder auf Projektebene exportiert sollten alle Inhalte des Packages enthalten sein.
 

Airborne

Mitglied
Das Bild darf nicht gepackt werden, das kann sonst nimmer gelesen werden.

Lege dir einen Order "res" oder "resource" an und verweise darauf. Nach dem Build fügst du diesen Resourcen-Ordner einfach neben dem JAR ein.
Das ist gängig und wird oft so gemacht. In dem Ordner lassen sich auch wunderbar Log files sammeln, Properties ablegen, NLS-Dateien, XML-Konfigurationen, ....
 

Michael...

Top Contributor
Das Bild darf nicht gepackt werden, das kann sonst nimmer gelesen werden.
Wie kommst Du zu der Meinung?
Es ist gängige Praxis Resourcen wie Bilder und Konfigdaten usw., die nur gelesen werden müssen mit in das jar zu packen. Bestes Beispiel sind die Demos die mit dem JDK mitgeliefert werden. Diese besitzen ein resources Package innerhalb des jars.
Wenn man Resourcen neben dem jar ablegt, werden diese nur gefunden wenn das jar aus diesem Verzeichnis heraus gestartet wird - z.b. durch Doppelclick, entsprechendes Startskript...
 

AngeloH

Mitglied
@Airborne: Natürlich funktioniert das mit Bildern in einem JAR. Ich kann doch ein solches JAR mithilfe des jar-commands auf der Kommandozeilenebene erstellen. Aber in Eclipse kriege ich das nicht hin. Ich habe meine jpg-Datei schon in alle möglichen Ordner gepackt. Aber nie ist sie am Schluss im JAR. Deswegen ist meine Hoffnung, dass ich vielleicht irgendwo ein Häkchen vergessen habe oder dass irgendwo der Pfad, der zu den Bildern führt, hinterlegt sein muss, was eigentlich wenig Sinn macht, weil der Ordner, in dem sich die class-Dateien befinden, auch der natürliche Ordner für jpg-Dateien sein müsste.
 

Airborne

Mitglied
Mit dem Kopf durch die Wand gell? Naja, wenn es denn bei einem Bild bleibt...
Viele Systeme haben Probleme solche Dateien direkt im JAR zu finden, zudem startet man auch nicht immer das Programm vor Ort (zumindest wenn man den Studenten-Status mal hinter sich gelassen hat...).

Rechts Klick auf Projekt -> Properties -> Build Path -> Registerkarte "Order and Export"

Wäre vermutlich gut wenn da das Bild dabei ist.
 
Zuletzt bearbeitet:
B

bygones

Gast
Viele Systeme haben Probleme solche Dateien direkt im JAR zu finden
was dann aber an der Dummheit der Entwickler liegt... eine Resource im Classpath zu haben und dann zu laden ist wohl alles andere als schwer.

einfach den resourcen ordner beim export angeben (siehe anhang)

und das "Order Export" ist nur fuer den internen Classpath von Eclipse und hat nix mit dem Export in ein jar zu tun - aber ja es sollte da sein bzw der Ordner in dem es liegt...
 

Anhänge

  • Clipboard01.jpg
    Clipboard01.jpg
    80,7 KB · Aufrufe: 46
Zuletzt bearbeitet von einem Moderator:

AngeloH

Mitglied
@bygones: Ich habe zwar den Ordner "src" unterhalb des Projektsnamens, aber nicht den Ordner "res". Wie kriege ich das hin, dass ich ebenfalls einen res-Ordner habe?


@Michael: Den Export nach einem Jar-File habe ich auch mal ausprobiert. Leider ohne Erfolg. Man kommt ja da zu einem Fenster "Select the resource to export". Unter dem Projektnamen finden sich die Einträge "src" und ".settings". Wenn ich jetzt unter "src/forum.beispiel" nachschaue, steht da nur die Java-Datei. Eine jpg-Datei, auch wenn ich sie in den Ordner vorher kopiert habe, wird dort nicht aufgelistet. Im rechten Teil des Fensters stehen noch ".classpath" und ".project". Bei mir ist von den 4 Optionen nur die erste Option "Export generated class files and resources" aktiviert. Könnte es daran liegen?
 
Zuletzt bearbeitet:

Michael...

Top Contributor
@bygones: Ich habe zwar den Ordner "src" unterhalb des Projektsnamens, aber nicht den Ordner "res". Wie kriege ich das hin, dass ich ebenfalls einen res-Ordner habe?
File --> New --> Package
@Michael: Den Export nach einem Jar-File habe ich auch mal ausprobiert. Leider ohne Erfolg. Man kommt ja da zu einem Fenster "Select the resource to export". Unter dem Projektnamen finden sich die Einträge "src" und ".settings". Wenn ich jetzt unter "src/forum.beispiel" nachschaue, steht da nur die Java-Datei. Eine jpg-Datei, auch wenn ich sie in den Ordner vorher kopiert habe, wird dort nicht aufgelistet.
Hast Du das Package danach auch aktualisiert?
Normalerweise werden alle darin enthaltenen Dokumente beim Export angezeigt und sind auswählbar.
 
B

bygones

Gast
oeh - es ist weder ein Package noch ein Source folder, liegen ja keine sourcen drin...

Ordner erstellen ueber New -> Folder

dann rechtsklick aufs Projekt -> Properties -> Java Build Path -> Libraries -> Add Class Folder
 
G

Gast2

Gast
Ob Class Folder oder Source Folder ist doch egal oder? Schlussendlich landet das resource file in der jar.
Wenn man nen Maven Projekt anlegt wird der resource Ordner auch als source folder angelegt, soo falsch kanns also nicht sein.
 
B

bygones

Gast
ich behaupte auch nicht dass es falsch ist - es gibt viele Wege die dahin fuehren. Ich habe nur den erwaehnt, den ich fuer am logischsten halte
 

AngeloH

Mitglied
@bygones: Ich habe einen neuen Ordner - habe ihn "res" genannt - angelegt, so wie Du es beschrieben hast. Dann habe ich noch "Add class folder" durchgeführt. Jetzt sehe ich diesen Ordner im Package Explorer unter dem Projektnamen.

Ich habe dann auf Explorer-Ebene meine Bilddatei in den neuen Ordner "res" hineinkopiert. Und dann habe ich ein Jar File erstellt. Aber obwohl ich unter "Select the resources ... " jetzt den neu erstellten res-Ordner auswählen konnte, enthält das JAR meine Bilddatei nicht. Kann es sein, dass ich unter Eclipse die Bild.jpg in diesen Ordner packen muss und dass ein Kopieren auf Explorer-Ebene, wie ich es gemacht habe, nicht ausreicht?
 
B

bygones

Gast
Ich habe dann auf Explorer-Ebene meine Bilddatei in den neuen Ordner "res" hineinkopiert. Und dann habe ich ein Jar File erstellt. Aber obwohl ich unter "Select the resources ... " jetzt den neu erstellten res-Ordner auswählen konnte, enthält das JAR meine Bilddatei nicht. Kann es sein, dass ich unter Eclipse die Bild.jpg in diesen Ordner packen muss und dass ein Kopieren auf Explorer-Ebene, wie ich es gemacht habe, nicht ausreicht?
mach mal ein refresh auf den Ordner, dann sollte das Bild da sein.

Ansonsten immer am besten das kopieren direkt in eclipse machen. Also zb im Explorer Datei auswaehlen -> CTRL + C -> in Eclipse den gewuenschten Ordner auswaehlen und CTRL + V -> dann sieht man diesen auch Eclipse. Ansonsten erkennt Eclipse die Aenderung nicht
 

AngeloH

Mitglied
Wunderbar! Das mit dem refresh hat geklappt. Ich habe mit WinZip in das JAR reingeschaut, und das Bild ist drin!! Da habe ich noch eine Frage: Im JAR-File steht die class-Dateien mit dem Pfad "forum\Beispiel" und die Manifest.mf-Datei mit dem Pfad "meta-inf\". Aber bei der Datei bild.jpg steht unter Pfad nichts. Da müsste doch eigentlich eine Angabe wie "forum\Beispiel\res" stehen. Wie könnte ich das erreichen?
 

AngeloH

Mitglied
Ich habe im gleichen Package einen Source Folder eingerichtet. Unter "Folder Name" habe ich "bin" eingetragen. Dann habe ich die Bilddatei bild.jpg, wie von bygones vorhin beschrieben, nach bin\forum.beispiel kopiert. Wenn ich jetzt ein Runnable JAR file erstelle, ist das Bild im Archiv und hat außerdem den gleichen Pfad wie die class-Dateien. Das Schönste ist, ich kann es mit Doppelklick starten. Ich danke allen für die Hilfe, ohne die ich es nicht geschafft hätte. Besonderen Dank an Michael und bygones. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Probleme mit Animation und der erstellung einer jar Datei. Java Basics - Anfänger-Themen 11
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
S Probleme mit abspielen einer .wav Datei Java Basics - Anfänger-Themen 2
L Probleme mit JAR Datei Java Basics - Anfänger-Themen 10
N Probleme bei Speicherung eines Integer-Array in Datei speichern Java Basics - Anfänger-Themen 3
M Klassen Probleme beim Debuggen - Datentypkonvertierung - Speichern in Datei Java Basics - Anfänger-Themen 7
P Interpreter-Fehler Probleme beim Ausführen einer Jar Datei Java Basics - Anfänger-Themen 2
0 Log4J Probleme beim einlesen der Log datei Java Basics - Anfänger-Themen 2
C probleme mit umlauten in der jar datei - aber nicht im eclipse Java Basics - Anfänger-Themen 3
I Probleme beim Laden einer .gif-Datei. Java Basics - Anfänger-Themen 8
M Probleme mit dem Lesen einer m3u-Datei Java Basics - Anfänger-Themen 8
B kleine Probleme beim auslesen einer m3u Datei Java Basics - Anfänger-Themen 3
C Probleme mit Exportieren einer jar-datei /keine Anzeige mehr Java Basics - Anfänger-Themen 5
M Probleme mit Excel Datei und JSP Java Basics - Anfänger-Themen 7
M Probleme beim Datei auslesen Java Basics - Anfänger-Themen 6
C Probleme mit .jar Datei und CLASSPATH Java Basics - Anfänger-Themen 2
C Probleme mit Auslesen einer Datei Java Basics - Anfänger-Themen 6
P Probleme beim Exportieren einer jar datei Java Basics - Anfänger-Themen 8
D Probleme mit dem Einlesen einer Datei Java Basics - Anfänger-Themen 11
L Probleme mit der .jar-datei Java Basics - Anfänger-Themen 2
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
V Probleme Guessing Game Java Basics - Anfänger-Themen 8
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
R JMenu/JMenuItem Probleme Java Basics - Anfänger-Themen 2
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
J Probleme mit dem Debugger Java Basics - Anfänger-Themen 4
J Probleme mit Kompilierung Java Basics - Anfänger-Themen 11
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
C Probleme mit paintComponent Java Basics - Anfänger-Themen 13
P Probleme mit JUnit-Tests, es kommt was anderes raus als bei manuellen Tests Java Basics - Anfänger-Themen 5
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
R Erste Schritte Probleme bei 2D Spielfeld, mit einzufügender "Person" Java Basics - Anfänger-Themen 5
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
Dimax String Probleme Java Basics - Anfänger-Themen 12
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
Splayfer Java Array Probleme Java Basics - Anfänger-Themen 3
J Probleme bei IllegalArgumentException "werfen". Java Basics - Anfänger-Themen 1
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
X Probleme im Umgang mit PriorityQueue Java Basics - Anfänger-Themen 75
D Probleme mit dem Windowbuilder und JComboBox Java Basics - Anfänger-Themen 2
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
X Probleme mit Übungsaufgaben zu Zahlentypen Java Basics - Anfänger-Themen 4
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
Franzi1001 Probleme mit Eclipse Java Basics - Anfänger-Themen 7
T Probleme bei Installation von JDK Java Basics - Anfänger-Themen 2
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
C Probleme bei Regex Java Basics - Anfänger-Themen 9
V Probleme mit Arrays Java Basics - Anfänger-Themen 8
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
G Probleme bei Frame aufgaben Java Basics - Anfänger-Themen 6
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
L Probleme mit Java Java Basics - Anfänger-Themen 3
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
J Probleme beim Array ausgeben Java Basics - Anfänger-Themen 4
M Probleme bei rekursiver Zuordnung Java Basics - Anfänger-Themen 1
I Probleme mit 2 dimensionale Arrays Java Basics - Anfänger-Themen 3
H Best Practice View probleme Java Basics - Anfänger-Themen 2
B Probleme mit Kreisberechnung Java Basics - Anfänger-Themen 15
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
J Eclipse Export Probleme Java Basics - Anfänger-Themen 25
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
J Interface Probleme bei der Implementierung Java Basics - Anfänger-Themen 1
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
V Klassen ObjectInputStream ->ReadObject Probleme Java Basics - Anfänger-Themen 5
P Probleme mit der Do-Schleife Java Basics - Anfänger-Themen 2
F Erste Schritte Compiling Probleme Java Basics - Anfänger-Themen 13
S Neuling und Probleme bei Schulaufgabe Java Basics - Anfänger-Themen 5
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
M Probleme mit Eclipse Java Basics - Anfänger-Themen 20
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Compiler-Fehler javac hat Probleme mit Paketen unter OSX Java Basics - Anfänger-Themen 2
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben