Halllo liebe Helfer, Am Sonntag, 26. Oktober 2003 19:48 schrieb Alexander Veit:
[..] 2.) Ich habe mir eine ZIP-Datei aus dem Internet geladen wo folgende Programme enthalten hat.
DTDGenerator$1.class DTDGenerator$AttributeDetails.class DTDGenerator$ChildDetails.class DTDGenerator$ElementDetails.class DTDGenerator$StackEntry.class DTDGenerator.class DTDGenerator.java dtdgen.jar
Und jetzt komme ich nicht mehr weiter um das Programm zu starten.
Folgendes habe ich schon probiert und das sind die Ausgaben die ich bekomme:
java -jar dtdgen.jar Failed to load Main-Class manifest attribute from dtdgen.jar
Sieht so aus, als wäre das jar nicht dafür gedatch, auf diese Art ausgeführt zu werden.
java DTDGenerator.class Exception in thread "main" java.lang.NoClassDefFoundError: DTDGenerator/class
java -class DTDGenerator.class Unrecognized option: -class Could not create the Java virtual machine.
Ich habe JDK 1.4 am laufen. So sieht mein $PATH aus. echo $PATH /usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome2 /bin:/opt/gnome/bin:/opt/kde3/bin:/opt/kde2/bin:/usr/lib/java/bin: /opt/gnome/bin: .:/home/maria/xml/akademie/:/usr/lib/saxon
Wobei die zweite Zeile momentan immer noch jedesmal wieder exportiert werden muss, dass dies mit dabei ist. Darum ging es unte 1).
Es wäre toll, wenn mir jemand schreiben könnte, was ich machen muss. Leider habe ich nicht viel Erfahrung mit Java.
Schau mal, was 'echo $CLASSPATH' ausgibt.
Da kam nichts.
Wenn in $CLASSPATH das aktuelle Verzeichnis . mit enthalten ist, sollte es ausreichen, ins Verzeichnis mit den .class-Dateien zu wechseln und dort 'java DTDGenerator' aufzurufen (ohne das .class).
Falls . nicht im CLASSPATH enthalten ist, ist es vermutlich am einfachsten, den Pfad zu dem dtdgen.jar in $CLASSPATH mit aufzunehmen. Dann sollte 'java DTDGenerator' funktionieren.
Ich habe jetzt mal CLASSPATH=/home/maria/xml/akademie/ gemacht. Dazu eine Frage, wahrscheinlich ist das hier genauso wieder wie bei PATH. Wenn ich das nicht in die ./profile reinschreibe, muss ich das doch bestimmt jedesmal wieder angeben oder? Wie bekomme ich das hin, dass mehrere Verzeichnisse zum Beispiel im CLASSPATH stehen, oder ist das nicht gut? Mache ich jetzt java DTDGenerator kommt jetzt die Ausgabe: maria@linux:~/xml/akademie> java DTDGenerator Usage: java DTDSAXGen input-file >output-file Das ist ja schon ein Fortschritt, aber so ganz weiss ich jetzt immer noch nicht was ich damit anfangen soll. Hat jemand von Euch eine Idee dazu. Ich dachte das Programm kann DTD generieren und diese dann mit der XML-Datei validieren. Input-File könnte ja die XML-Datei sein aber output-file (evtl. eine html-Datei oder eine andere Dateiart). Was ist eigentlich der Unterschied zwischen PATH und CLASSPATH das ist mir noch nicht ganz klar. Den Punkt 1 meiner Mail ist inzwischen gelöst. Ich habe das mit den export Befehlen mit den jeweiligen Verzeichnissen in die ./profile Datei eingetragen und jetzt sind sie mit drin. Ohne dass ich sie jedesmal seperat wieder eingeben muss. Eine Frage habe ich jetzt aber doch dazu noch. Die ./profile Datei ist im Unterverzeichnis /home/maria. Funktioniert das dann wenn ich da z. B. reingeschrieben haben export PATH=$PATH:/usr/lib/saxon oder hätte ich da schreiben müssen anstatt /usr/lib/saxon ../../usr/lib/saxon Was ist jetzt richtig? Da bin ich doch etwas im Zweifel. Vielen Dank für Eure Mühe. Viele Grüße Marita Betz P.S. JRE muss richtig installiert sein, sonst würden ja andere Java-Programme wie Treebeard nicht laufen. Diese habe ich ja auch zum Starten gebracht.