HomeSoftwareSpieleMusikForum

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!

up
Created 2011-08-11 by mopcoge