Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo beisammen,

Ich habe ein Problem mit der Erstellung von JAR-Filse. Also erstmal kurze Einführung:

Ich schreibe mir ein Filmverwaltungsprogramm mit MySQL-Datenbank. Dafür habe ich den

"mysql-connector-java-5.0.7-bin.jar"

in mein Projekt mit eingebunden. Nebenbei arbeite ich mit Eclipse 3.2.2. Nun mache ich einen Rechtsklick auf mein Projekte und sage "Export - JAR File". Dann habe ich im darauffolgenden Fenster schon beide Möglichkeiten ausprobiert:

- "Export generated class files and resources" (= JAR-File enthält keinen mysql-connector)

- "Export all output folders for checked projects (= JAR-File enthält mysql-connector

Im nächsten Fenster gebe ich nun die Main-Class für die MANIFEST-Datei an und sage

"Seal the JAR"

Als letztes nun bestätige ich mit "Finish" und mein JAR wird mir am Desktop erstellt. Wenn ich das Ding nun starte (Doppelklick) passiert nichts. Ich denke das das JAR-File irgendwie keinen Datenbankzugriff hat, bzw, nicht weis, über oder mit was er die Verbindung zur Datenbank herstellen soll.

Hier noch einen kurzen Ueberblick ueber meine Programmstruktur: *klick*

Die Ordner "images16, images24, images32 und images48" enthalten *.png Dateien.

Was muss ich tun, ich verzweifle schon!

:(:(:(

Greetz

Hmm,

ich hab' noch keine Lib in mein JAR-File eingebunden. Aber ist ja auch egal. An Deiner Stelle würde ich ein eigenes ANT-Buildscript basteln, das alle nötigen Schritte durchführt.

Wenn ich das Ding nun starte (Doppelklick)
Ein jar-file wird nicht per Doppelklick gestartet sondern ober ein eigenes Skript. So aus dem Gedächtnis sollte das so aussehen:
java -cp pfad\zu\deinem\jar.jar -jar der.name.deines.packages.KlasseMitMainMethode

Dim

In deinem Ordner sollte sich unter META-INF eine Manifest.MF befinden.

Ordnerstruktur:


Blakecks.jar

 |

 |

 --> lib

       |

       --> mysql-connector-java-5.0.7-bin.jar


 |

 --> META-INF

          |

          --> MANIFEST.MF

Inhalt MANIFEST.MF:

Manifest-Version: 1.0

Main-Class: test.DieKlasseMitMainMethode

Class-Path: lib/mysql-connector-java-5.0.7-bin.jar

Versuchs zur not mal hiermit:

Lesson: Packaging Programs in JAR Files (The Java™ Tutorials > Deployment)

Grüße Steve

  • Autor
Hmm,

ich hab' noch keine Lib in mein JAR-File eingebunden. Aber ist ja auch egal. An Deiner Stelle würde ich ein eigenes ANT-Buildscript basteln, das alle nötigen Schritte durchführt.

ok, thx was ist ein ANT-Script???

Greetz

  • Autor
In deinem Ordner sollte sich unter META-INF eine Manifest.MF befinden.

Ordnerstruktur:


Blakecks.jar

 |

 |

 --> lib

       |

       --> mysql-connector-java-5.0.7-bin.jar


 |

 --> META-INF

          |

          --> MANIFEST.MF

Inhalt MANIFEST.MF:

Manifest-Version: 1.0

Main-Class: test.DieKlasseMitMainMethode

Class-Path: lib/mysql-connector-java-5.0.7-bin.jar

Versuchs zur not mal hiermit:

Lesson: Packaging Programs in JAR Files (The Javaâ„¢ Tutorials > Deployment)

Grüße Steve

ich hab jetzt mal genau diese struktur von dir übernommen: *klick*

aber irgendwie tut sich da noch immer nichts

aber irgendwie tut sich da noch immer nichts

dann solltest du, wie dr.dimitri angegeben hat, das ganze mal mit java über die commandline aufrufen. du wirst dann sicher eine fehlermeldung, jedenfalls aber etwas mehr als *nichts* bekommen.

s'Amstel

ich hab jetzt mal genau diese struktur von dir übernommen: *klick*

aber irgendwie tut sich da noch immer nichts

hast du mal probiert das ganze so in die Kommandozeile einzugeben:

java -jar Movies.jar

Wenn beim Doppelklick nichts passiert, müsste er hier zumindest eine Fehlermeldung ausgeben...

Achja, lass mal das sealed true raus und schau was als Ergebnis rauskommt.

EDIT sagt: Entpack mal das Jar mit winzip, oder winrar und schau bitte wie die Ordnerstruktur aussieht. evlt. übernimmt Eclipse auch den Inhalt der METAINF.MF nicht richtig in das die jar.

  • Autor
hast du mal probiert das ganze so in die Kommandozeile einzugeben:

java -jar Movies.jar

Wenn beim Doppelklick nichts passiert, müsste er hier zumindest eine Fehlermeldung ausgeben...

Achja, lass mal das sealed true raus und schau was als Ergebnis rauskommt.

EDIT sagt: Entpack mal das Jar mit winzip, oder winrar und schau bitte wie die Ordnerstruktur aussieht. evlt. übernimmt Eclipse auch den Inhalt der METAINF.MF nicht richtig in das die jar.

ok, da kommt jetzt wenigstens schon ne fehlermeldung: *klick*

ich schätz ma der findet den mysql-connector nicht. Egal ob ich sealed drin oder nicht drin stehen habe, die fehlermeldung kommt leider immer.

mit den Kommandozeilenbefehlen kann ich nicht so viel anfangen, weil ich noch anfänger bin ... son tut wär vll nicht schlecht

Das kann jetzt mehrere Möglichkeiten haben:

  • du musst nach lib/mysql-connector-java-5.0.7-bin.jar ein Leerzeichen machen.
  • du hast die ordnerstruktur nicht richtig übernommen

mehr Möglichkeiten gibt es meines Wissens nicht. Entpack bitte mal die JMovieHandler.jar und sieh nach ob alles am dem Platz ist, so wie ich es beschrieben habe. Vermute mal stark, dass die mysql-connector-java-5.0.7-bin.jar zwar da, aber nicht im lib Ordner ist. Kannst du das bitte mal prüfen.

  • Autor
Das kann jetzt mehrere Möglichkeiten haben:

  • du musst nach lib/mysql-connector-java-5.0.7-bin.jar ein Leerzeichen machen.
  • du hast die ordnerstruktur nicht richtig übernommen

mehr Möglichkeiten gibt es meines Wissens nicht. Entpack bitte mal die JMovieHandler.jar und sieh nach ob alles am dem Platz ist, so wie ich es beschrieben habe. Vermute mal stark, dass die mysql-connector-java-5.0.7-bin.jar zwar da, aber nicht im lib Ordner ist. Kannst du das bitte mal prüfen.

ok, also auf meinem desktop schauts jetzt so aus (Ordner images & lib) außerhalb der .jar-Datei: *klick*

jetzt kann ich das schöne ding auch starten, aber eigentlich wärs mir lieber wenn er die ordner lib und images aus dem jar liest und nicht extra außerhalb liegen müssen. oder welche lösung ist da jetzt sauberer???

was (sollte) man eigentlich in .jar Archive wirklich packen???

Greetz

Da liegt glaube ich das Grundlegende Problem an einer Jar. So wie ich das aus dem Tutorial rausgelesen haben funktioniert es leider nicht, wenn man die Jars in eine größere Jar packt.

Ich für meinen Teil, würde den Code den ich geschrieben habe immer in Jars packen, da ich so gewährleisten kann, dass alles was ich brauche auch dabei ist. Das glaube ich ist reine Geschmackssache. Lass mich in der Hinsicht aber auch eines besseren belehren.

Grüße

Steve

  • Autor
Da liegt glaube ich das Grundlegende Problem an einer Jar. So wie ich das aus dem Tutorial rausgelesen haben funktioniert es leider nicht, wenn man die Jars in eine größere Jar packt.

Ich für meinen Teil, würde den Code den ich geschrieben habe immer in Jars packen, da ich so gewährleisten kann, dass alles was ich brauche auch dabei ist. Das glaube ich ist reine Geschmackssache. Lass mich in der Hinsicht aber auch eines besseren belehren.

Grüße

Steve

hört sich doch ganz vernünftig an die aussage ...

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.