ShellScript: classpath füllen, JavaProgramm ausführen

2004-11-09 Diskussionsfäden Markus Plessing
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

2004-11-09 Diskussionsfäden Andreas Pakulat
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

2004-11-09 Diskussionsfäden Markus Plessing
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

2004-11-09 Diskussionsfäden Philipp Meier
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