Linux: Standardbrowser und Java
Einige Desktopsysteme kennen die Begriffe "Standardbrowser" und
"Standardmailer". Gemeint sind Programme, die automatisch aufgerufen
werden, um URLs mit bestimmten Protokollen (http, https, mailto etc.) zu
bearbeiten. Diese Begriffe sind in verschiedenen Zusammenhängen interessant,
u.a. für Java-Programmierer.
Java: Java 6 stellt mit der Klasse Desktop eine
systemunabhängige Schnittstelle zur Verfügung, über die sich (unter
anderem) Standardbrowser und -mailer ohne Kenntnis der systemspezifischen
Eigenheiten starten lassen.
So jedenfalls die Theorie. Unter Windows und MacOS klappt das
tatsächlich problemlos, unter Linux (oder Solaris) jedoch nicht unbedingt.
Java 6 verlässt sich dort ausschließlich auf das Vorhandensein
verschiedener GNOME-Bibliotheken. Fehlen diese, wird die
Desktop -API nicht unterstützt. Das bedeutet, dass die API auf
reinen GNOME-Systemen zuverlässig funktioniert, während man auf anderen
u.U. bestimmte Pakete zusätzlich installieren muss. Leider verschweigt die
Dokumentation, um welche Bibiliotheken es sich genau handelt.
Meine Versuche ergaben, dass jedenfalls libgnome und
gconf notwendig sind, vermutlich auch noch
andere, die von diesen benötigt werden. Wer auf einem reinem KDE-System arbeitet,
wird diese wohl nicht vorfinden und muss versuchen, die
entsprechenden rpm-Pakete nachzuinstallieren. [1]
Es scheint außerdem erforderlich zu sein, einmalig einen Browser und Mailer zur
Standardapplikation zu machen (geht z.B. mit Firefox und Thunderbird),
damit das Ganze überhaupt funktioniert. file: - URLs werden
nicht an den Browser durchgereicht.
Browser-Mailer-Kopplung:
Offenbar verlässt sich nicht nur Java auf den GNOME-Mechanismus.
Auch die Familie der Mozilla-Produkte arbeiten damit (zumindest ab Firefox 3).
Das Vorhandensein der Bibliotheken bringt daher
einen weiteren Vorteil mit sich: Klickt man im Firefox auf eine
mailto: - URL, wird automatisch der Standardmailer
aktiviert, klickt man in Thunderbird auf einen http-Link, der
Standardbrowser. Und zwar ohne dass man irgendwelche
Optionen in den prefs.js - Dateien ändern muss.
Einstellung:
Der eingestellte Standardbrowser ist nicht immer der gewünschte. Bei
einigen Desktopsystemen lässt sich die Einstellung über die grafische
Oberfläche ändern. Fehlt diese Möglichkeit, kann man versuchen, die
Einstellung über das betreffende Programm selber vorzunehmen, also z.B.
Firefox anweisen, sich zum Standardbrowser zu machen. Aber auch das geht
nicht in allen Fällen. Einen Ausweg gibt es jedoch immer -
vorausgesetzt, die entsprechenden Pakete sind installiert -, nämlich das
Programm gconftool-2 . Es ist Bestandteil des
gconf -Pakets und erlaubt es, jedem URL-Protkoll (http, https,
mailto usw.) einzeln eine Standardapplikation zuzuweisen. Gerade deshalb
ist es allerdings ziemlich mühsam in der Handhabung. Sehr viel einfacher
geht es mit den nachfolgend beschriebenen Scripten
stdbrowser und
stdmail . Letzteres ist lediglich ein
symbolischer Link auf ersteres.
Aufrufarten:
stdbrowser -h |
Kurze Hilfe ausgeben |
stdbrowser -p |
Pfad des Standardbrowsers ausgeben |
stdbrowser -s pfad |
Pfad des Standardbrowsers setzen. Handelt es sich um einen einfachen
Namen, wird das Programm über $PATH gesucht. |
stdbrowser -k |
Einen laufenden Standardbrowser abbrechen (falls er sich aufgehängt hat). |
stdbrowser URL |
Den Standardbrowser mit der angegebenen URL starten. |
Beim Aufruf mit der Option -s wird der neue Browser mit
allen in Frage kommenden Protokollen (http, https, ftp, chrome) verknüpft.
Wird das Script als stdmail aufgerufen, betrifft alles oben
Gesagte den Standardmailer. Beim optionslosen Aufruf wird hier eine
Mailadresse angegeben. Der Standardmailer wird mit den Protokollen feed,
mailto, news, nntp, snews verknüpft.
Die Option -k ist für den (bei Browsern nicht seltenen) Fall
vorgesehen, dass das Programm sich aufgehängt hat und sich über die Oberfläche
nicht mehr abbrechen lässt. Der Abbruch erfolgt über das relativ
brutale Kommando pkill -KILL name , wobei name
der Basisname des Programms ist.
Der optionslose Aufruf stellt einen indirekter Start des betreffenden
Standardprogramms dar. Man erreicht damit zusätzliche Flexibilität, etwa
indem man bei Firefox als Programm zur Behandlung von "mailto:"-Links nicht
thunderbird , sondern das Script stdmail angibt.
Ändert man den Standardmailer, verwendet automatisch auch Firefox
die neue Einstellung, ohne dass man an seiner Konfiguration etwas ändern muss.
Zur Installation entpackt man das Script in einem beliebigen Verzeichnis und
erzeugt dort mit
ln -s stdbrowser stdmail
einen symbolischen Link. Unter dem Namen stdmail aufgerufen bearbeitet
das Script dann das Standard-Mailprogramm.
[1] Viel Glück!
|