Fehlersuche: Jar erstellen

Status
Nicht offen für weitere Antworten.

dR.LoL

Bekanntes Mitglied
Hallo, wieder ich...
Ich möchte mein Projekt nun abschliessen und ein jar daraus erstellen.

Ich habe die folgende Struktur:
Code:
Installationsort (zB. C:\java\develop\)
 -> SRETT.class (main)
 -> SRETT Package
   -> Alle SRETT*.Class
   -> Images Ordner
     -> 2-3 Bilder
 -> srePackage Package
   -> Alle srePackage*.Class

Meine generateJar.bat: (Zusammengeschnippsel aus dem Forum hier):
Code:
@echo off 
echo JarBatch - erzeugen von jar-Dateien 
echo.
 
rem * Hier den Pfad zum SDK setzen! 
set PATH=C:\Sun\AppServer\jdk\bin;+PATH

rem * Manifestdatei vorbereiten und erzeugen. 
echo Manifest-Version: 1.0>manifest.mf 

rem * Bitte ClassPath hier angeben! (optional) 
echo Class-Path: .>>manifest.mf 

rem * Bitte Main-Class hier angeben! 
echo Main-Class: SRETT>>manifest.mf 
rem * Leerzeile mitgeben! 
echo.>>manifest.mf

if exist *.class goto create 

rem * Kompilieren, falls noch nicht geschehen. 
:compile 
if not exist *.java goto errorjava 
javac -classpath srePackage/*.java 
javac -classpath SRETT/*.java 
javac -classpath *.java 

rem * Jar-Datei erzeugen. 
:create 
if not exist *.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 SRETT.jar manifest.mf srePackage/*.class SRETT/*.class *.class SRETT/Images  

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

Die daraus entstandne Manifest: (Wenn ich sie NICHT lösche! (Was bei meinem Script im Normalfall so ist)
Code:
Manifest-Version: 1.0 
Class-Path: . 
Main-Class: SRETT


Und nun, natürlich mein Problem:
Exception in thread "main" java.lang.NoClassDefFoundError: SRETT
Woohhaaa sexxxeehhh nicht? :-((


Nun, ich öffne das erstellte SRETT.jar um zu schauen, was alles überhaupt drin ist.
Code:
 -> META-INF Folder
   -> MANIFEST.FM
     ->Manifest-Version: 1.0

Manifest-Version: 1.0   //Zeile 1
Class-Path: . 
Created-By: 1.5.0_02 (Sun Microsystems Inc.)
Main-Class: SRETT 
    //Leerzeile am Schluss


 -> SRETT.class (main)
 -> SRETT Package
   -> Alle SRETT*.Class
   -> Images Ordner
     -> 2-3 Bilder
 -> srePackage Package
   -> Alle srePackage*.Class

Nun ja, eigendlich ist alles vorhanden? (Ausser der Zeile Created-By: 1.5.0_02 (Sun Microsystems Inc.)) Was meiner Meinung nach aber nicht ein Problem darstellen soll...

Findet jemand das Problem und kann mir auf die Sprünge helfen?
Gruss vom LoL


PS:
Folgendes Script lässt meine Applikation starten!!
Code:
@ECHO OFF
ECHO set the PATH....
set PATH=C:\Sun\AppServer\jdk\bin;+PATH

ECHO Compiling Sources...
javac -classpath ./ *.java

ECHO Running SRETT...
java SRETT

pause


Editiert von L-ectron-X am 13.03.2006 um 15:30
Code-Tags repariert.
 
habe es nur überflogen, aber deine SRETT.class liegt im package SRETT, oder?
dann musst du in der manifest schreiben:

Main-Class: SRETT.SRETT
 
@norman
Nein!
Den SRETT Ordner den du meinst ist vom Eclipse der Projektname. Also kein zweites SRETT Package!

@Sebastian
...Auch das bringt leider nichts! :-(
 
dR.LoL hat gesagt.:
PS:
Folgendes Script lässt meine Applikation starten!!
Code:
@ECHO OFF
ECHO set the PATH....
set PATH=C:\Sun\AppServer\jdk\bin;+PATH

ECHO Compiling Sources...
javac -classpath ./ *.java

ECHO Running SRETT...
java SRETT

pause

Hast du schon mal einen Doppelklick oder einfach java -jar SRETT.jar versucht?
 
Also, meine Art den Path zu setzen geht...
java -version (1.3)
set PATH=C:\Sun\AppServer\jdk\bin;+PATH
java -version (1.5)

Deine Art, was macht die? Die setzt den Path hinten dran? Ist eigendlich ja falsch... nun ja, muss erwähnen, dass ich leider nicht Administrator bin und deshalb meinen Path so 'ugly' anpassen muss.

Auch mit der Zeile "jar cfvm SRETT.jar manifest.mf *.*" war ich erfolglos...

Thanks...


EDIT:
@MPW, das Script das du meinst ist unabhängig vom andern! Ja, ich habe es mittels java -jar SRETT.jar bzw. Doppelklick versucht. Ich meinte mit dem andern Script nur, dass ich es mit dem so kompilieren und auch starten kann!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben