Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : NoClassDefFoundError beim Compilieren



spaghetti
26-09-2009, 11:46
Hallo,

ich versuche meine ersten Schritte mit Apache POI Project. Möchte in der Zelle A1 einen Text ausgeben, was mit Eclipse auch funktioniert. Jetzt wollte ich das selber kompilieren und erhalte eine NoClassDefFoundError Fehlermeldung; d.h. doch, dass der Compiler was nicht finden kann?!

Also habe ich dann:
javac -classpath poi-3.2-FINAL-20081019.jar POIKlasse.java

eingegeben und es wird erfolgreich kompiliert, da nun auch in der jar-Datei nach Klassen vom Compiler gesucht wird, richtig?!

Der Aufruf:
java MeineKlasse

zum Starten, brachte mir eine Fehlermeldung:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook

Ich schätze mal, das nicht in der jar-Datei nach der Klasse HSSFWorkbook gesucht wird, daher die Fehlermeldung??

Wie bekomme meine Klasse zum Laufen?

Wie müsste man vorgehen, wenn ich aus meiner Datei POIKlasse.java ein jar-File machen möchte? Muss ich in dieses die poi-3.2-FINAL-20081019.jar mit hinzufügen und wie stelle ich dann den Zugriff auf die poi-3.2-FINAL-20081019.jar sicher, ich meine das mein jar-File dann die Klassen, die es benötigt findet??

jeebee
26-09-2009, 11:48
dann musst du halt wiederum mit
java -classpath poi-3.2-FINAL-20081019.jar MeineKlasse das Programm starten.

spaghetti
26-09-2009, 12:48
Das hatte ich schon versucht, erhalte immer noch die Fehlermeldung:
Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse

Ich habe nur meine Klasse + main-Methode, in der ich meine Erstellung des Excel Files machen wollte. Mehr habe ich nicht im Code drin.

mwanaheri
26-09-2009, 12:56
Wenn du ein jar starten willst, ist der Aufruf
java -jar dieJarDatei

jeebee
26-09-2009, 13:06
Heisst denn jetzt deine Klasse 'MeineKlasse' oder 'POIKlasse'?

spaghetti
26-09-2009, 17:34
Also Sie heißt POIKlasse, aber Namen sind ja Schall und Rauch. Wie ich normalerweise eine jar Datei starte/ kompiliere ist mir klar, nur brauche ich ja jetzt Klassen aus der POI.jar die ich verwenden will. Und da frage ich mich halt, wie JAVA "weiß", dass es mal in der POI.jar nach den Klassen schaut...

jeebee
26-09-2009, 20:55
Wenn du diese Fehlermeldung: "Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse" wörtlich erhältst, wenn du "java -classpath POI.jar MeineKlasse" ausführst und die Klasse in der die public static void main drin ist aber POIKlasse heisst, dann erstaunt mich das überhaupt nicht, da du ja dann "java -classpath POI.jar POIKlasse" aufrufen müsstest.