ShellScript: classpath füllen, JavaProgramm ausführen
Hallo Leute, ich habe mir ein kleines ShellScript geschrieben, das aus zwei Verzeichnissen *.class und *.jar Files zu meinem String zusammenfügt, der den ClassPath repräsentiert und im Anschluss ein JavaProgramm mit der Option -classpath ausführt. Hier der Code: -- #!/bin/sh jarPath=$INSTALL_PATH/jars/ OOo_Path=$OOo_home OOo=$OOo_home/program/classes APP=CustAppl classPath=.:classes/ cd $jarPath for file in * do if [ -f $file ] then classPath=$classPath:jars/$file fi done cd $OOo for oojars in * do if [ -f $oojars ] then classPath=$classPath:$OOo/$oojars fi done cd $INSTALL_PATH $JAVA_HOME/bin/java -classpath \$classPath\ $APP echo Launching Application ... exit -- Die Variablen $INSTALL_PATH und $OOo_home werden automatisch bei der Installation durch einen IzPack-Installer ersetzt. Führe ich das Script mit den korrekt ersetzten oben genannten Variablen aus führt das ganze zu einer ClassNotFoundException. Das Kuriose daran ist allerdings, wenn ich die ganze AusführZeile mit java etc. in eine Datei umleite, also dann : -- echo $JAVA_HOME/bin/java -classpath \$classPath\ $APP start chmod 755 start ./start -- und diese aus dem Script ausführe funktioniert das ganze wunderbar !?! Die Datei start wird dann im Installationsverzeichnis erzeugt, also bin ich auch im richtigen Verzeichnis. Das Programm startet auch, wenn ich die Zeile einfach über echo auf der Konsole ausgebe, die Zeile kopiere und dann auf der Kommandozeile ausführe. Ich kann mir das ganze wirklich nicht erklären, aber vielleicht weiß jemand von Euch rat :) Markus -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: ShellScript: classpath füllen, JavaProgramm ausführen
On 09.Nov 2004 - 10:34:35, Markus Plessing wrote: Hallo Leute, $JAVA_HOME/bin/java -classpath \$classPath\ $APP echo Launching Application ... exit -- Wieso escapest du die Anfuehrungszeichen? Das muss man nur, wenn man in einem String der von begrenzt ist auch nutzen will. Führe ich das Script mit den korrekt ersetzten oben genannten Variablen aus führt das ganze zu einer ClassNotFoundException. Welche Klasse und wo liegt sie? Ist das Verzeichnis in dem die .class liegt bzw. das .jar File wirklich im ClassPath enthalten? Das Kuriose daran ist allerdings, wenn ich die ganze AusführZeile mit java etc. in eine Datei umleite, also dann : Also nehme ich mal an meine vorige Frage beantwortest du mit ja... Da wuerde ich ja tatsaechlich auf die \ setzen, denn in der Datei in die du umleitest verschwinden diese. Andreas -- If you are what you eat, I guess that makes me a cheese danish. -- Anonymous -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
[SOLVED] Re: ShellScript: classpath füllen, JavaProgramm ausführen
Hallo Andreas, * [...] Wieso escapest du die Anfuehrungszeichen? Das muss man nur, wenn man in einem String der von begrenzt ist auch nutzen will. [...] Ich hatte das ganze irgendwann mal in Anführungszeichen ... sind also Überbleibsel ... [...] Da wuerde ich ja tatsaechlich auf die \ setzen, denn in der Datei in die du umleitest verschwinden diese. Danke, ja das wars dann wohl ... Ist echt schlimm, dass einen so simple Dinge aufhalten *g Andreas Markus -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: ShellScript: classpath füllen, JavaProgramm ausführen
On Tue, Nov 09, 2004 at 10:34:35AM +0100, Markus Plessing wrote: Hallo Leute, ich habe mir ein kleines ShellScript geschrieben, das aus zwei Verzeichnissen *.class und *.jar Files zu meinem String zusammenfügt, der den ClassPath repräsentiert und im Anschluss ein JavaProgramm mit der Option -classpath ausführt. Hier der Code: -- #!/bin/sh jarPath=$INSTALL_PATH/jars/ OOo_Path=$OOo_home OOo=$OOo_home/program/classes APP=CustAppl classPath=.:classes/ cd $jarPath for file in * do if [ -f $file ] then classPath=$classPath:jars/$file fi done Hm, du suchst im aktuellen Verzeichnis, hängst aber den Dateinamen aus jars an. Ich bevorzugte folgendes: classPath=$classpath:`find jars -type f -printf %p: cd $OOo for oojars in * do if [ -f $oojars ] then classPath=$classPath:$OOo/$oojars fi done ebenso. cd $INSTALL_PATH Dieses umherge-CD-e macht mich ganz wirr! $JAVA_HOME/bin/java -classpath \$classPath\ $APP echo Launching Application ... exit -- Die Variablen $INSTALL_PATH und $OOo_home werden automatisch bei der Installation durch einen IzPack-Installer ersetzt. Ich kann mir das ganze wirklich nicht erklären, aber vielleicht weiß jemand von Euch rat :) Jupp, einfach nicht soviel mit cd umherspringen, ansonsten mal ein beherztes sh -x scriptname und auf Erleuchtung hoffen. Wenn diese nicht eintritt, Ausgabe hier mal posten. -billy. -- Philipp Meier - [EMAIL PROTECTED] .signature: No such file or directory signature.asc Description: Digital signature