script startet ohne richtige Umgebungsvariablen

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

script startet ohne richtige Umgebungsvariablen

Beitrag von latenite » 17.10.2007 16:24:01

Hallo Leute

ich nutzt eine Java GUI zur Programmierung in Haskell. Diese Anwendung braucht eine Umgebungsvariable in der .bashrc.

also steht folgendes in meiner .bashrc:

Code: Alles auswählen

export LVMPATH=/root/Desktop/haskell_exercises/:/usr/lib/helium/lib
wenn ich dann die JavaGui aus der Bash aus starte mit:

Code: Alles auswählen

export AWT_TOOLKIT=MToolkit
java -DLVMPATH=$LVMPATH -jar /usr/local/bin/Hint-1.6.jar
dann kann die GUI und der drunter laufende Haskellinterpreter die zur Laufzeit benötigte Bibliothek

Code: Alles auswählen

/usr/lib/helium/lib
finden.

Wenn ich aber einen Starter im Panel (Taskleiste) anlege der auf ein Script verweist das folgenden Inhalt hat:

Code: Alles auswählen

export AWT_TOOLKIT=MToolkit
java -DLVMPATH=$LVMPATH -jar /usr/local/bin/Hint-1.6.jar
dann kommen die Umgebungsvaruiablen nicht mit sondern nur . Was ein ausführen von haskellprogrammen unmöglich macht.


warum ist das so?[/code] Wie kann ich eine Anwendung/Script aus dem Panel starten lassen und die Umgebungsvariablen nutzten die schon in meiner .bashrc stehen?

Danke für eure Hilfe. :wink: [/code]

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 17.10.2007 17:42:23

Die ".bashrc" wird von einer interaktiven Bash-Shell ausgeführt, solange es sich dabei nicht um eine Login-Shell handelt. Von einer Login-Shell wird ".profile" bzw ".bash_profile" aufgerufen, oft wird daher in diese Dateien auch ein Aufruf von ".bashrc" eingefügt, wodurch dann die Variablen aus der ".bashrc" in allen interaktiven Bash-Shells zur Verfügung stehen, egal ob Login-Shell oder nicht.
Wenn du einen Starter verwendest wird jedoch überhaupt keine interaktive Shell ausgeführt, du kannst aber das Environment z.B über /etc/X11/Xsession.d/ steuern

Gruß
gms

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 18.10.2007 19:03:09

in /etc/X11/Xsession.d sind bei mir:

[02:55:13] [kai@desktop:~] $ ls /etc/X11/Xsession.d
20x11-common_process-args 55gnome-session_gnomerc 99x11-common_start
30x11-common_xresources 75dbus_dbus-launch
50x11-common_determine-startup 90x11-common_ssh-agent

keine sagt mir so richtig was. wo ändere ich da was?

wie könnte ich denn ohne einen starter zu verwenden ein icon in die taskleiste bringen das mein programm startet (mit den entsprechenden parametern) :roll:

Benutzeravatar
Kalimac
Beiträge: 293
Registriert: 25.05.2004 13:19:48
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wetterau
Kontaktdaten:

Beitrag von Kalimac » 18.10.2007 19:28:41

Deine export-Zeile sollte in der .xsession stehen (nicht .bashrc). Die wird immer von X nach dem Login ausgeführt.
Die technische Evolution ist die Wirkung eines geistigen Fortschritts gewesen und könnte nun zu seiner Ursache werden.
- Jacques Neirynck -

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 18.10.2007 20:14:15

latenite hat geschrieben: keine sagt mir so richtig was. wo ändere ich da was?
erstelle einfach eine neue Datez z.B "99local-haskel"
mit dieser Lösung wird das Environment für alle User unter X11 angepaßt, du brauchst daher nicht umbedingt als "root" programmieren :wink:
natürlich kannst du dir auch eine geeignete ".xsession" im Home-Verzeichnis erstellen, oder du baust dir ein Wrapper-Script, und rufst dein Java-Programm über dieses Script auf
latenite hat geschrieben: wie könnte ich denn ohne einen starter zu verwenden ein icon in die taskleiste bringen das mein programm startet (mit den entsprechenden parametern)
was meinst du mit "den entsprechenden Parametern" ?

Gruß
gms

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 18.10.2007 20:43:31

mit den Parametern meinte ich den LVM PATH.

kannst du mir zeigen wie so ein wrapperscript aussehn kann?..hab noch keins geschrieben. danke :roll:

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 18.10.2007 20:46:08

nur eine datei namens .xsession mit dem Inhalt

export LVMPATH=/root/Desktop/haskell_exercises/:/usr/lib/helium/lib

lässt das proramm beim start aus der taskleite und bestehenden icon mit selbem fehler starten..das war s noch nicht. :cry:

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 18.10.2007 20:49:00

z.B. so:

Code: Alles auswählen

#! /bin/sh

export LVMPATH=/root/Desktop/haskell_exercises/:/usr/lib/helium/lib
export AWT_TOOLKIT=MToolkit 
java -DLVMPATH=$LVMPATH -jar /usr/local/bin/Hint-1.6.jar "$@"

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 19.10.2007 15:31:12

cool das hat funktioniert. jetzt is es wie ich s mir gewünscht habe. klicken und läuft.

danke das war echt grosse hilfe :lol: :lol: :lol:

Antworten