Problem mit Script zum starten von Java-Programmen

Post Reply
Message
Author
HarryBO
Posts: 20
Joined: 10. Aug 2001 15:29

Problem mit Script zum starten von Java-Programmen

#1 Post by HarryBO »

Moin,
ich hab mir ein kleines Scipt geschrieben (siehe unten), mit dem ich JAVA-Programme per Klick ausführen kann. Funktioniert soweit. Allerdings stört mich, dass es nur mit dem Gnome-Terminal funktioniert und nicht mit dem xterm. Wenn ich statt 'gnome-terminal' 'xterm' einsetze, dann kommt immer eine Fehlermeldung in der Art, Datei oder Verzeichnis nicht gefunden. Kann mir einer erklären, warum? Ich war der Meinung xterm nutzt auch die .bashrc für die Umgebungsvariablen, oder etwa nicht? Und 'env' gibt im XTerm eigentlich auch alle notwendigen Pfade aus ... *grübel*

Das zweite kleinere Problem, das ich habe, ist der Rückgabewert von 'zenity' ... gibt es da kein ESC bzw. -1? Ich wollte eigentlich, dass das Scipt beim drücken von ESC abgebrochen wird, aber das klappt irgendwie nicht ... *schon wieder grübel*

BITTE helft mir! Das ist gaaaannz doll wichtig. Bitte! Bitte! Bitte! :D

Gruß
HarryBO

Code: Select all

#!/bin/sh
# Script zum automatischen ausfuehren von *.class und *.jar Dateien
# unter Gnome (Dateien mit dem Script als Ausfuehrungsbefehl verknuepfen)
#
# Die folgende Zeile editieren
JAVA=/usr/java/bin/java
# Ab hier nicht mehr veraendern!
SF=`echo $1|sed 's/\.class//'`  # wenn Klasse ".class" entfernen, sonst nichts
DIR=`dirname $SF`               # kompletten Verzeichnispfad holen
FILE=`basename $SF`             # Programmname holen
JAR=`echo $1|grep jar`          # fuer 'test' vergleichbare ->
CLASS=`echo $1`                 # Zeichenketten holen
# Ins Arbeitsverzeichnis wechseln, da Java Verzeichnisse als Klassen(archiv)
# betrachtet und so dem eigentlichen Programmnamen voranstellen wuerde.
# Wuerde z.B. fuer '/home/user/java/Programm' in 'home.user.java.Programm'
# geaendert werden.
cd $DIR # gilt nicht fuer die Ausfuehrung in der Konsole???
# Dialog wie gestartet werden soll
zenity \
--question \
--title="Java-Programm \"$FILE\" ausfuehren" \
--text=\
"Programm im Terminal ausfueren?
 
Bei Wahl von \"Abbrechen\" wird das Programm
als normale X-Anwendung ausgefuehrt!"
# Ausfuehrung je nach Wahl
case $? in
    0)  # Ja/Nein Klasse oder Jar-Archiv in der Konsole ausfuehren
        if [ "$CLASS" != "$JAR" ]
          then gnome-terminal --hide-menubar --working-directory $DIR \
               -e "$JAVA $FILE"
          else gnome-terminal --hide-menubar --working-directory $DIR \
               -e "$JAVA -jar $FILE"
        fi
        ;;
    1)  # Ja/Nein Klasse oder Jar-Archiv unter X ausfuehren
        if [ "$CLASS" != "$JAR" ]
          then $JAVA $FILE
          else $JAVA -jar $FILE
        fi
        ;;
   -1)  # eigentlich fuer Abbruch mit ESC-Taste bzw. sonstige
        # Ausfuehrungsfehler gedacht. Geht aber nicht, weil der
        # Rueckgabewert bei Abbruch immer '1' ist????
        exit 0
        ;;
esac

Post Reply