2.9. Allgemeine Konfigurationseinstellungen

Im Gegensatz zu Variablen haben Einstellungen gewisse Restriktionen in Bezug auf die erlaubten Werte. So müssen nummerische Einstellungen eine Zahl darstellen, möglicherweise in einem eingeschränkten Bereich. Normalerweise werden akzeptable Werte angezeigt, wenn die Anwendung mit dem -help Schalter gestartet wird. Die Hilfe für einige der möglichen Einstellungen wird nur angezeigt, wenn der -debug Schalter auf true gesetzt ist, da sie für den normalen Betrieb in der Regel nicht von Interesse sind.

Einige der Einstellungen verfügen zusätzlich zu ihrem vollen Namen über einen Alias. Dieser kann anstelle des vollen Namens verwendet werden, um die Kommandoeingabe zu verkürzen. Beide Wege sind dabei äquivalent zu einander. Beachtenswert ist dabei, dass sowohl die Namen wie auch die Aliase Gross- und Kleinschreibung unterscheiden.

Diejenigen Einstellungen, welche eine simple ja-oder-nein Entscheidung fällen (Boolesche Werte) unterstützen auf der Kommandozeile ein paar zusätzliche Arten, wie Werte spezifiziert werden können. Wird nur der Name der Einstellung angegeben (z.B. „ -verbose “), so wird der Wert true angenommen, unabhängig vom Vorgabewert. Durch Angabe von „ -no-verbose “ wird dieser Wert umgedreht und false wird angenommen (wiederum unabhängig vom Vorgabewert).

Ist ein angegebener Wert für eine Einstellung nicht akzeptabel, so hängt das Verhalten davon ab, wo dieser Wert angegeben wurde. Falls er in einer der geladenen properties Dateien steht, so wird die Anwendung eine Warnung ausgeben und mit dem Aufstarten fortfahren. Wurde der beanstandete Wert jedoch als eine Kommandozeilenoption mitgegeben, so wird er mit einer Fehlermeldung zurückgewiesen und die Anwendung wird abgebrochen.

Im Folgenden ist eine Beschreibung der Einstellungen, die allen Anwendungen gemeinsam sind.

Tabelle 2.4. Informations- und verwendungsbezogene Einstellungen

NameAliasTypVorgabeBeschreibung
verbosevBoolean false

Ausführliche Ausgaben und mehr Hilfe anzeigen.  Legt den Umfang der von der Anwendung ausgegebenen Informationen fest. Dies ist im Normalfall nicht notwendig für die gewöhnliche Ausführung, kann aber nützliche Zusatzinformationen liefern. Häufig betrifft dies bloss Kommandozeilenanwendungen und kontrolliert, wie viel Ausgaben generiert werden, was das Programm gerade macht. Es beeinflusst auch, wie kompakt oder ausführlich die Hilfestellung ausfällt, wenn mit -help danach verlangt wird.

verbose-headervhBoolean true

Programminformationen anzeigen im ausführlichen Modus.  Kontrolliert ob die Copyright-Meldung und Lizenzinformationen angezeigt werden im verbose Modus. Resultiert in einer kompakteren Ausgabe, wenn der verbose Modus eingeschaltet und dies jedoch ausgeschaltet ist.

versionVBoolean false

Versionsinformationen anzeigen und beenden.  Verhindert die normale Ausführung der Anwendung und gibt anstelle dessen bloss die Versionsinformationen aus und endet. Kann verwendet werden, um die Version einer Anwendung zu überprüfen und dabei sicher zu stellen, dass nichts anderes ausgeführt wird.

helphBoolean false

Hilfe anzeigen und beenden.  Gibt auf der Konsole eine Hilfestellung über die verfügbaren Kommandozeilenoptionen aus mit einigen Verwendungsbeispielen und beendet dann die Anwendung ohne normale Operationen auszuführen. Kann als Schnellreferenz verwendet werden, wie die Anwendung von der Kommandozeile aus zu bedienen ist.

license N/A Boolean false

Anwendungslizenz anzeigen und beenden.  Gibt auf der Konsole den Lizenztext aus, der die Verwendung der Anwendung regelt und endet. Kann verwendet werden, um den Lizenztext in eine neue Datei zu extrahieren, falls das Original verloren ging.

loop N/A Boolean false

Mehrmals ausführen nach Benutzerbestätigung.  Dies macht bloss bei gewissen Kommandozeilenanwendungen Sinn und bedeutet, dass die Anwendung mehrfach ausgeführt werden soll, nachdem dies der Benutzer nach jedem Lauf bestätigt. Kann verwendet werden, um die Zeit einzusparen, die das Starten der JVM braucht, wenn im Voraus bekannt ist, das die Anwendung ihre Aufgabe mehrmals mit der gleichen Konfiguration ausführen soll.

wait N/A Boolean false

Auf Eingabe von Return warten beim Ende.  Hindert die JVM am Beenden des Prozesses bis dies der Benutzer bestätigt. Kann verwendet werden um sicherzustellen, dass eine Gelegenheit besteht, Anwendungsausgaben (oder Log-Ausgaben) zu lesen, bevor der Prozess endet und möglicherweise die startende Konsole mit verschwindet.


Tabelle 2.5. Konfigurationsbezogene Einstellungen

NameAliasTypVorgabeBeschreibung
configcfgString <empty>

Konfigurationsdatei mit Einstellungen.  Spezifiziert eine standard Java properties Datei mit zu ladenden Einstellungen. Diese Datei wird zuletzt geladen und hat daher die höchste Priorität; überschreibt daher alle anderen Quellen von Konfigurationseinstellungen (siehe Allgemeine Konfigurationsmechanismen).

variablesvarString <empty>

Variablen von gegebener Datei laden.  Spezifiziert eine Datei woraus Variablen und deren Werte geladen werden sollen. Siehe Definition und Verwendung von Variablen für weitergehende Informationen über Variablen.

config-autosave N/A Boolean false

Ob Einstellungen beim Beenden gespeichert werden sollen.  Falls auf true gesetzt, werden Einstellungen im Verzeichnis gespeichert, welches in der Einstellung config-save angegeben ist. Dies wird die Datei nur aktualisieren, falls eine der Einstellungen andere Werte aufweist, als am angegeben Ort gespeichert sind. Einige Anwendungen verändern ihre Einstellungen nie während der Ausführung und werden daher diese Datei niemals schreiben oder aktualisieren.

config-save N/A String ${settings.dir}

Wo die Einstellungsdatei gespeichert werden soll.  Legt das Verzeichnis fest, welches zum abspeichern der Einstellungen verwendet wird. Falls Einstellungen geschrieben werden müssen und dieses Verzeichnis noch nicht existiert, so wird es erstellt. Schon bestehende Einstellungsdateien in diesem Verzeichnis werden aktualisiert, wenn diese geschrieben werden, daher muss verhindert werden, dass mehrere Anwendungen die gleichen Dateien schreiben, oder Datenverlust (der Einstellungen) ist die mögliche Folge.

config-dump N/A Boolean false

Ob Einstellungen beim Starten angezeigt werden sollen.  Hauptsächlich zur Problemsuche der Einstellungen verwendet. Falls auf true gesetzt, so werden alle Einstellungen und deren Werte beim Starten der Anwendung auf die startende Konsole ausgegeben. Kann verwendet weren, um Probleme zu finden, wenn komplexe Konfigurationsszenarien im Einsatz sind, wo Einstellungen von mehreren Dateien an unterschiedlichen Orten geladen werden.


Tabelle 2.6. Konsolenbezogene Einstellungen

NameAliasTypVorgabeBeschreibung
language N/A String ${user.language}

Sprache setzen.  Kann verwendet werden, um die Vorgabesprache der Anwendung zu ändern. Standardmässig ist dies die von der JVM detektierte Sprache (welche sie von den lokalen Einstellungen des Betriebssystems übernimmt). Damit ist es möglich, der Anwendung eine andere Sprache aufzuzwingen, als vom Betriebssystems vorgegeben.

country N/A String ${user.country}

Land setzen.  Verwendet um das detektierte Land zu ändern. Funktioniert nur im Zusammenspiel mit der -language Einstellung und sollte eines der von der aktiven Sprache unterstützten Länder sein.

codepage N/A String ${file.encoding}

Setzen der Codepage für Konsolenausgaben.  Dies ermöglicht das Festlegen einer bestimmten Codepage, welche die Anwendung für Konsolenausgaben verwenden soll. Kann notwendig sein auf bestimmten Plattformen, falls die JVM die zu verwendende Codepage nicht korrekt erkennt, damit Spezialzeichen wie Umlaute korrekt in der Ausgabe verarbeitet werden.

codepage-guess N/A Boolean true

Ob die Konsolen-Codepage geraten werden soll.  Ermöglicht das Abschalten der automatischen Erkennung der zu verwendenden Codepage falls dies nicht das gewünschte Resultat zeitigt. Erlaubt im Zusammenspiel mit der -codepage Einstellung die Festlegung der aktiven Codepage.


Tabelle 2.7. Netzwerk Einstellungen

NameAliasTypVorgabeBeschreibung
use-proxy-configproxyBoolean false

Ob die Proxy Konfigurationseigenschaften verwendet werden sollen.  Ermöglicht das Abschalten der Verwendung von Einstellungen die in der Datei für die Proxy Konfigurationseigenschaften gemacht werden.

proxy-config N/A String ${app.home}/conf/Proxy.properties

Proxy Konfigurationseigenschaften.  Spezifiziert eine standard Java properties Datei mit zu ladenden Einstellungen für die Konfiguration des Java Netzwerk Proxies.

net-authenticator N/A String

Netzwerk Authentisierer Klasse.  Spezifiziert den Namen einer Klasse, welche als Authentisierer genutzt werden soll, wenn Zugriff auf eine Netzwerk-Ressource Authentisierung verlangt. Diese Klasse muss eine Ableitung der standard-Java Klasse java.net.Authenticator sein und Benutzername/Passwort zurück liefern für den Zugriff auf die geschützte Netzwerk-Ressource.

Das Framework stellt die folgenden Implementierungen zur Verfügung, welche hier angegeben werden können:

  • net.boarderzone.afw.auth.SilentAppConfigAuthenticator.  Ein einfacher Authentisierer der seine Aufgabe still erledigt durch die Verwendung von Benutzername und Passwort aus den Anwendungs- Konfigurationseinstellungen unten.

  • net.boarderzone.afw.auth.InteractiveCommandLineAuthenticator.  Ein einfacher Authentisierer der seine Aufgabe durch interaktive Abfrage von Benutzername und Passwort auf der Kommandozeile erledigt, wobei bei jeder verlangten Autenthisierung erneut abgefragt wird.

  • net.boarderzone.afw.auth.RememberingCommandLineAuthenticator.  Ein einfacher Authentisierer der seine Aufgabe durch interaktive Abfrage von Benutzername und Passwort auf der Kommandozeile erledigt, wobei die eingegebenen Werte für weitere Verwendung gespeichert werden. Zur Speicherung werden die Anwendungs-Konfigurationseinstellungen unten genutzt.

  • net.boarderzone.gui.auth.InteractiveDialogAuthenticator.  Ein einfacher Authentisierer der seine Aufgabe durch interaktive Abfrage von Benutzername und Passwort mittels eines GUI-Dialogs erledigt, wobei dieser Dialog die Möglichkeit bietet, die eingegebenen Werte zur weiteren Verwendung zu speichern. Zur Speicherung werden ebenfalls die Anwendungs-Konfigurationseinstellungen unten genutzt.

net-username N/A String ${user.name}

Benutzername für die Netzwerk Authentisierung.  Spezifiziert den Benutzernamen welcher verwendet werden soll zum Zugriff auf geschützte Netzwerk-Ressourcen, welche Authentisierung verlangen.

Wird einer der obigen Authentisierer genutzt, welcher die Eingaben speichert, so ist dies der Ort, wo der eingegebene Benutzername gespeichert wird.

net-password N/A String

Passwort für die Netzwerk Authentisierung.  Spezifiziert das Passwort welches verwendet werden soll zum Zugriff auf geschützte Netzwerk-Ressourcen, welche Authentisierung verlangen.

Wird einer der obigen Authentisierer genutzt, welcher die Eingaben speichert, so ist dies der Ort, wo das eingegebene Passwort gespeichert wird.

Achtung: das Passwort wird hier im Klartext gespeichert!


Tabelle 2.8. Fehlersuche und interne Einstellungen

NameAliasTypVorgabeBeschreibung
debug N/A Boolean false

Debugging Ausgaben anzeigen.  Schaltet sehr ausführliche Ausgaben in Kommandozeilenanwendungen ein. Hauptsächlich zur Problemsuche verwendet. Arbeitet im Zusammenspiel mit der -verbose Einstellung und legt den Umfang der ausgegebenen Informationen fest.

logging N/A String ${user.dir}/logging.properties

Eine Logging Konfigurationsdatei.  Spezifiziert die Konfigurationsdatei, welche das verwendete Logging Framework kontrolliert. Siehe Einstellungen für Logging für mehr Informationen.

required-version N/A String ${app.version}

Die benötigte Applikationsversion.  Dies kann verwendet werden um sicherzustellen, dass eine spezifische Version der Anwendung verwendet wird. Standardmässig ist dies immer die Version der ausgeführten Anwendung. Wird hier eine andere Version angegeben und diese ist nicht gleich derjenigen der startenden Anwendung, so wird eine Fehlermeldung ausgegeben und das Programm beendet. Dies kann verwendet werden um festzustellen, dass Skripte nach der Installation einer neuen (und möglicherweise inkompatiblen) Anwendungsversion angepasst werden müssen. Die angegebene Version wird eins-zu-eins mit der Version der Anwendung verglichen und nur als gleich erachtet, wenn alle Komponenten exakt übereinstimmen (es werden also keine Kompatibilitätsvermutungen angestellt basierend darauf, ob z.B. nur die Build-Nummer geändert hat).

invocationCount N/A Integer 0

Zählt die Anzahl Anwendungsaufrufe.  Nur zu Test- und Überwachungszwecken. Macht nur Sinn bei Anwendungen, die so konfiguriert (und in der Lage) sind, dass sie ihre Einstellungen beim Beenden jeweils speichern.