Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo zusammen,
Ich habe diese JarBatch Datei, dieses Typen mit dem Kind (Sorry, weiss dein Name grad nicht mehr ) runtergeladen und ausgestestet... Ja es verlief alles eigendlich super...
Sind das wirklich alle Dateien die das jar File braucht? (Es erscheint der berüchtigte Fehler: "Couldn't find the main class, program will exit!")
Mein Batch sind nun so aus:
Code:
@echo off
echo JarBatch - erzeugen von jar-Dateien
echo.
rem * Manifestdatei vorbereiten und erzeugen.
echo Manifest-Version: 1.0>manifest.mf
rem * Bitte Main-Class hier angeben!
echo Main-Class: InsaneSnake>>manifest.mf
if exist bin/*.class goto create
rem * Kompilieren, falls noch nicht geschehen.
:compile
if not exist src/*.java goto errorjava
javac -O bin/*.java
rem * Jar-Datei erzeugen.
:create
if not exist bin/*.class goto errorjar
rem * Bitte Name der zu erstellenden jar-Datei hier angeben!
rem * Beispiel: jar cfvm ArchivName.jar manifest.mf *.class images sounds
rem * fügt ein Manifest, alle class-Dateien und die Verzeichnisse images und sounds in ArchivName.jar ein.
jar cfvm InsaneSnake.jar manifest.mf bin.*
echo Komplettes Projekt incl. Quellcode-Dateien dem jar-Archiv hinzugefügt.
goto end
:errorjava
echo java-Dateien nicht gefunden!
echo class-Dateien konnten nicht erstellt werden.
:errorjar
echo class-Dateien konnten nicht gefunden werden!
echo jar-Archiv konnte nicht erstellt werden.
:end
rem Manifest von Festplatte löschen
del manifest.mf
rem Konsole für Ausgaben geöffnet lassen
echo.
pause
Ist korrekt, funktioniert allesdings nicht ...
Package hab ich keins, mit der Manifest sollte es also gehen...
Wenn ich die jar unter Windows starte, mit was wird es dann gestartet? Evtl. da was falsches drine?
EDIT:
Respektive ist es korrekt mit der "Virtual Java Machine Launcher" des zu starten?
Also ich ersetzte die folgende Zeile:
jar cfvm InsaneSnake.jar manifest.mf bin.*
laut diesem Kommentar:
rem * Bitte Name der zu erstellenden jar-Datei hier angeben!
rem * Beispiel: jar cfvm ArchivName.jar manifest.mf *.class images sounds
rem * fügt ein Manifest, alle class-Dateien und die Verzeichnisse images und sounds in ArchivName.jar ein.
wie folgt nach:
jar cfvm InsaneSnake.jar manifest.mf bin/*.class
alle class dateien (3) werden hiermit hinzugefügt, images/sounds existieren keine. Auch mit *.* geht es nicht, obwohl das für mich erklärbarer ist, wenn das nicht geht als wenn bin/*.class nicht geht...
Ist bin ein Package?
Wenn nicht kopiere die Batchdatei dirket ins Verzeichnis der class-Dateien und entferne die bin/-Verweise.
Und dann ist es auch gut zu wissen, was genau nicht geht. Was passiert, legt sie Dateien an, wie sieht der Inhalt der jar-Datei aus, etc.
*.* fügt alle Dateien des Verzeichnisses in die jar-Datei, in dem die Batchdatei liegt.
Edit:
Wenn sich ein jar-File erstellen lässt, es jedoch mit dem oben aufgetretenen Fehler startet, kannst du auch noch in Zeile 11 einfügen:
Nein, das sollte der Pfad darstellen.
Okay, habe nun das gemacht was du gemeint hast!
Es gibt keine Fehler. Alles wird erstellt, wenn ich dann die jar Datei starten will erscheint im cmd:
Exception in thread "main" java.lang.NoClassDefFoundError: InsaneSnake/jar
Und mittels Windoof (doppel klicken):
Couldn't find the main class. Program will exit!
Edit:
Manifest ist wohl hier nicht das Problem? :roll: ???:L
Die Zeilen werden erstellt wie sie sollen, und Fehlermeldung erscheint eigendlich auch keine, also hat er doch eigendlich die Manifest korrekt erkannt!?!
Öffne mal die jar-Datei mit einem Packprogramm. Dazu kannst du die jar-Datei mal in InsaneSnake.zip umbennen.
Jetzt ist der Aufbau interessant, was ist drin zu finden?
Also es existieren die 3 Class Dateien und ein Order META-INF welcher das file MANIFEST.MF besitzt, dieses hat GENAU den Inhalt:
----------------------
Manifest-Version: 1.0
Created-By: 1.5.0_02 (Sun Microsystems Inc.)
Main-Class: InsaneSnake
----------------------
(KEINE Leerzeile!)
Obwohl mein Manifestfile was ich gebraucht hatte sah so aus:
----------------------
Manifest-Version: 1.0
Main-Class: InsaneSnake
Hast du mal das gemacht, was ich im Edit 3 Postings weiter oben vorgeschlagen habe?
Normalerweise gehört diese Zeile mit hinein. Ich hatte mal daran herumgefeilt, da muss diese Zeile irgendwie entfernt worden sein.
Aber eigentlich passt der ausgegebene Fehler nicht zum Problem mit der fehlenden Leerzeile.
Got a "Muuuh"?
Wenn ich doppelt drauf klicke, kommt die oben beschriebene Meldung... java und das starten auch... Umgebungsvariablen stimmen aber!!!
Wenn ich allerdings "Öffnen mit" mache und GENAU das gleiche anklicke, was bei der Standart ausführen (doppelt klicken) kommen sollte, dann gehts.... EXTREM komisch, aber es geht...