Jar mit Abhängigkeiten ausführen -> NoClassDefFound Error

Status
Nicht offen für weitere Antworten.

flaffy

Mitglied
Hallo :)

Ich hätte da mal eine Frage...

Ich habe mir ein kleines Programm geschrieben das auf ein paar anderen Jars von Jakarta (commons-email, commons-lang, activation) und der Java Mail Api aufbaut. Und mein Programm habe ich schön brav in ein Jar gepackt.

Wenn ich es jetzt unter Linux ausführen möchte...

java -classpath .:/classpath/mail.jar:/classpath/...usw. -jar MeinJar.jar

... erhalte ich eine NoClassDefFound Exception, da er die Klassen in den Jars auf die meine Anwendung zugreift, nicht finden kann... Die Klassen sind allerdings in den über -classpath angegebenen Jars vorhanden.

Ich habe derzeit die ganzen Jars in den ext Ordner meiner Java Installation gepackt - das funktioniert zwar, ist aber nicht das was ich eigentlich wollte :(

Berechtigungen für die einzelnen Jars sind ebenfalls gesetzt (Testweise auf jeder lesen/schreiben/ausführen).

Woran kann es liegen das er die Jars im -classpath vollkommen ignoriert?
 
G

Guest

Gast
bist du sicher das du die jars in /classpath gespeichert hast? oder nicht doch etwa in ~/irgeneinpafd?

kind regards
 

flaffy

Mitglied
Nein das Verzeichnis heisst classpath...


/classpath/mail.jar ...
/classpath/irgendein.jar

Ich könnte das Verzeichnis natürlich auch nach demjenigen benennen, der mir eine Antwort auf mein Problem geben kann :)

z.B. ... /DeinName/irgendein.jar :)

...Wobei sich immernoch die Frage stellt warum er die angegebenen Jars ignoriert :( Hatte das Problem noch niemand unter Linux? :(
 

thE_29

Top Contributor
Kommt den eine noClassDefFound Error von einer Klasse die in den jar Files sein sollten??

Oder eine andere?? (Vielleicht falsche Version?)
 

thE_29

Top Contributor
Oha, na dann musst du das so machen!!

java -classpath .:/classpath/mail.jar:/classpath/...usw.:MeinJar.jar mein.package.pfad.zur.main.class

So sollte das hinhaun!!
 

flaffy

Mitglied
Kommt den eine noClassDefFound Error von einer Klasse die in den jar Files sein sollten??

Oder eine andere?? (Vielleicht falsche Version?)

Das kommt von meinem Programm. Es kann eine abhängige Klasse in einem der angegebenen Jars nicht finden (wenn die abhängigen Jars z.B. im ext-Verzeichnis liegen funktioniert es wunderbar).

Man kann "java" nicht mit -classpath und -jar kombiniert aufrufen. Entweder, oder.

Das wär mir sehr sehr neu...wie soll man denn sonst andere Abhängigkeiten erfüllen? Per export oder set?

Oha, na dann musst du das so machen!!

java -classpath .:/classpath/mail.jar:/classpath/...usw.:MeinJar.jar mein.package.pfad.zur.main.class

So sollte das hinhaun!!

So hatte ich es auch :) Nur das ich die Main-Class schon in das Manifest eingetragen habe.

Aaaaaaaaaaber es funktioniert einfach nicht...ich hab auch schon gegoogelt und jeder macht es ebenfalls so...aber...es will einfach nicht...

Muss ich das vielleicht mit irgendwelchen -Dsystem Parametern angeben?
 

flaffy

Mitglied
Hier z.B. unter Windows:

Code:
java -classpath ".;c:\test\mail.jar;c:\test\commons-lang-2.0.jar;c:\test\activation.jar" -jar SimpleMail-alpha.jar

pause

Und das Ergebnis...

Code:
C:\Test>java -classpath ".;c:\test\mail.jar;c:\test\commons-lang-2.0.jar;c:\test\activation.jar" -jar SimpleMail-alpha.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingException
        at net.flaffy.SimpleMail.main(SimpleMail.java:63)

C:\Test>pause
Drücken Sie eine beliebige Taste . . .
 

thE_29

Top Contributor
Mh, hast du die javaxmail Librarys eingebunden oder ist das in mail.jar drinnen??

Bild mir ein, die mail Sachen haben ja mehrere Jar Files!
 

messi

Bekanntes Mitglied
flaffy hat gesagt.:
messi hat gesagt.:
Man kann "java" nicht mit -classpath und -jar kombiniert aufrufen. Entweder, oder.

Das wär mir sehr sehr neu...wie soll man denn sonst andere Abhängigkeiten erfüllen? Per export oder set?

Das ist nicht neues. Aber du kannst z.B. ins Manifest folgendes aufnehmen: Class-Path: a.jar b.jar c.jar
 

thE_29

Top Contributor
Hab gerade getestet und mit Classpath geht das einfach net!

Enteweder du machst es so wie ich mit meine.klasse.main

oder du fügst es im Manifest-MF hinzu!
 

flaffy

Mitglied
Mmmhhhhhh so langsam glaube ich messi hatte Recht :)

Ich hab es jetzt so gelöst (erstmal unter Windows)...

Code:
java -Djava.endorsed.dirs=c:\test\ -jar SimpleMail-alpha.jar

Ich geb einfach -Djava.endorsed.dirs=pfad an. Dann kann ich die Jars irgendwo hinpacken...funktioniert unter Linux und Windows :)
 

flaffy

Mitglied
Ich hab mir einfach angeschaut wie die das beim Tomcat machen. Denn wenn du den unter Linux unter einem anderen Benutzernamen ausführen möchtest, musst du vorher einen jsvc (auch im Tomcat Verzeichnis) Service starten. Und dem musst du diverse -D Parameter weiterleiten - u.a. auch "Classpath" und die eigentliche Jar Datei :)
 

saz

Mitglied
Hallo,
ich habe ein ähnliches Problem wie hier beschreiben, aber weiss nicht so ganz, ob es tatsächlich 100% zutrifft.

Bei mir habe ich 2 jar-Dateien importiert, die soweit im Eclipse auch verfügbar sind, aber wenn ich sie versuche in einem thread in einem Applet aufzurufen (nachdem ich sie als *.war exportiert habe), kommt der Fehler NoClassDefFound für eine Klasse, die sich in einer der jar-Dateien befindet. Muss ich da die jar-Dateien auch als Plugin machen?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Jar/DLL Abhängigkeiten durch User angeben lassen Allgemeine Java-Themen 6
S Eclipse Abhängigkeiten zwischen den Projekten in Eclipse Allgemeine Java-Themen 2
N Keine Klassen startbar/mit Abhängigkeiten erstellbar Allgemeine Java-Themen 2
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
S Buttons nacheinander ausführen Allgemeine Java-Themen 2
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
P Bat Datei in Java ausführen Allgemeine Java-Themen 2
J Jar-Datei ausführen Allgemeine Java-Themen 7
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
F jar File ausführen Allgemeine Java-Themen 14
Hatsi09 Jar datei ausführen verursacht NumberFormatException Allgemeine Java-Themen 9
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
J Linux .jar beim Start automatisch ausführen Allgemeine Java-Themen 6
J CMD Befehl in Java Consolenprogramm ausführen Allgemeine Java-Themen 6
L Python in Java ausführen Allgemeine Java-Themen 4
L Eclipse Java Code ausführen Allgemeine Java-Themen 18
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
N Script mit Java ausführen Allgemeine Java-Themen 21
F Java automatisch ausführen Allgemeine Java-Themen 3
J Alle Unit Tests in Maven Modul Projekt ausführen Allgemeine Java-Themen 7
D Verknüpfung mit Java Ausführen Allgemeine Java-Themen 1
H jar-Datei mit java.exe anstatt mit javaw.exe ausführen Allgemeine Java-Themen 9
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
M Classpath Java App ausführen Allgemeine Java-Themen 2
Javafan01 .sh datei in Java ausführen Allgemeine Java-Themen 1
Javafan01 Ausführen Allgemeine Java-Themen 1
das_leon Hotkey ausführen Allgemeine Java-Themen 1
A Input/Output VBS-Datein mit Java Ausführen Allgemeine Java-Themen 2
K Server mieten, Berechnungen darauf ausführen Allgemeine Java-Themen 14
L HTML Formular ausführen Allgemeine Java-Themen 1
Tommy Nightmare Ausführen von CMD Befehlen Allgemeine Java-Themen 10
H .Sh Datei ausführen programmieren Allgemeine Java-Themen 5
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
M *.class Files ausführen Allgemeine Java-Themen 2
C Ausführen einer .JAR Datei Allgemeine Java-Themen 5
J Batch datei öffnen und als Admin ausführen Allgemeine Java-Themen 43
J Ältere applets ausführen? Allgemeine Java-Themen 0
A Linux bash script ausführen Allgemeine Java-Themen 16
Viktim Bash Script in Java ausführen Allgemeine Java-Themen 6
J While Schleife ausführen bis Zahl = X Allgemeine Java-Themen 19
T Programme ausführen.. Allgemeine Java-Themen 3
H Java Anwendungen ausführen Allgemeine Java-Themen 3
T Während des Programmlaufs andere Programme ausführen Allgemeine Java-Themen 1
T .jar über cmd ausführen (später dann batch) Allgemeine Java-Themen 6
M Klasse in separaten Thread ausführen.Wie genau? Allgemeine Java-Themen 2
G Threads Methode nebenbei ausführen, Status verarbeiten Allgemeine Java-Themen 4
Fischkralle Ausführen von fremden Code Allgemeine Java-Themen 14
E JCuda-0.6.5 Probleme beim ausführen der Datei Allgemeine Java-Themen 0
2 jede Stunde Methode ausführen Allgemeine Java-Themen 8
buggy84 Ausführen einer Batch mit Parameterübergabe funktioniert nicht richtig Allgemeine Java-Themen 18
T Git-Befehle mit Java ausführen Allgemeine Java-Themen 5
Neumi5694 Datei mit erhöhten Rechten ausführen Allgemeine Java-Themen 2
Bananabert Java mit bestimmter GPU ausführen Allgemeine Java-Themen 7
F Mencoder unter Java Ausführen Allgemeine Java-Themen 0
L Jar-Datei in Web ausführen Allgemeine Java-Themen 1
U CMD Befehle als Admin ausführen Allgemeine Java-Themen 6
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
D swingset3.jnlp lässt sich nicht ausführen Allgemeine Java-Themen 2
S Shell Commands mit absolutem Pfad ausführen Allgemeine Java-Themen 2
G Umgebungsvariable Jar im Netzlaufverk ausführen Allgemeine Java-Themen 4
K Eclipse Fehler beim Ausführen meines Programms in Eclipse Allgemeine Java-Themen 11
F paintComponent() nicht automatisch ausführen? Allgemeine Java-Themen 5
G while Schleife ausführen solange eine Taste gedrückt ist Allgemeine Java-Themen 14
M Java Anwendung ausführen Allgemeine Java-Themen 5
J Code ausführen bei JVM-Zerstörung Allgemeine Java-Themen 15
T Java Klassen aus externer .jar laden und ausführen Allgemeine Java-Themen 3
Hoppelmann Befehlszeile an bestimmtem Ort ausführen Allgemeine Java-Themen 2
M Befehl in Runtime ausführen der Eingabe benötigt Allgemeine Java-Themen 3
C Rechnung genau 8 mal ausführen Allgemeine Java-Themen 5
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
S NoSuchMethodError beim Ausführen einer C Methode über JNI Allgemeine Java-Themen 5
C Umgebungsvariable Java-Datei in anderem Verzeichnis ausführen Allgemeine Java-Themen 2
F Jar auf Netzlaufwerk ausführen Allgemeine Java-Themen 2
Gossi Java Code in einer GUI eingeben und ausführen? Allgemeine Java-Themen 2
D Code später ausführen Allgemeine Java-Themen 8
Wirago (runnable) JAR-File ausführen Allgemeine Java-Themen 6
S Fehler beim ausführen des HTML Allgemeine Java-Themen 7
T jar Archiv auf Server ausführen Allgemeine Java-Themen 3
J CMD direkt in Java ausführen Allgemeine Java-Themen 11
B UNIX Shell befehl über JavaCode ausführen Allgemeine Java-Themen 19
J Threads Methode in Mainthread ausführen Allgemeine Java-Themen 5
A Jasperreports automatisch ausführen lassen Allgemeine Java-Themen 5
P jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 5
T Junit-Tests in Java Klasse ausführen Allgemeine Java-Themen 26
R Jar Datei ausführen Allgemeine Java-Themen 7
J Java programm lässt sich in win7 nach linux install nicht mehr ausführen Allgemeine Java-Themen 18
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
J Java Datei ausführen Allgemeine Java-Themen 8
DStrohma Kommandozeilen-Programm unendlich lang ausführen Allgemeine Java-Themen 13
truesoul Runtime.getRuntime().exec nebenbei ausführen Allgemeine Java-Themen 12
R Methoden in einem Thread unterschiedlich oft ausführen Allgemeine Java-Themen 4
E Externes bat sichtbar ausführen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben