Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

09.11.2004, 10:17

Shellscript: classpath füllen, java-programm 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:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/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 :

Quellcode

1
2
3
echo $JAVA_HOME/bin/java -classpath "$classPath" $APP  > start
chmod 755 start
./start

und dann 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 :)

empty

Thema bewerten