[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



Reply to: