Befehlszeile mittels JewelCli unter Java auswerten

Die Methodensignatur der Standardeinsprungsmethode sieht unter Java wie folgt aus:

public static void main(String[] args)

Übergeben wird hierbei ein String-Array welches die Argumente der Befehlszeile enthält. Möchte man diese auswerten, kann man das natürlich von Hand machen. Alternativ kann man eine Bibliothek nutzen, welche einem diese Arbeit abnimmt. Eine dieser Bibliotheken ist JewelCli. JewelCli arbeitet auf Basis von Annotationen. Im ersten Schritt muss dazu ein Interface definiert werden:

public interface CommandLineOptions {
    @Unparsed
    List getFiles();

    @Option
    boolean isRecursive();

    @Option(defaultValue="localhost")
    String getDatabase();

    @Option(helpRequest = true)
    boolean getHelp();
}

In diesem Interface werden die verfügbaren Optionen über Annotationen definiert. So werden in den ersten zwei Zeilen die Unparsed-Optionen definiert. Das sind Optionen ohne Schlüssel, welche dann z.B. als Dateinamen interpretiert werden können. Die zweite Option welche im Interface definiert wird ist ein Schalter. So kann später in der Befehlszeile der Wert -recursive definiert werden, was sich auf den Wert der Rückgabe von isRecursive() auswirkt. Bei der dritten Option wird ein String übergeben welcher in der Befehlszeile mittels –database db.example.com definiert werden kann. Der Parameter ist dabei optional, so wird der Wert localhost angenommen, wenn der Wert nicht über die Befehlszeile definiert wurde. Die letzte Option dient der Implementation der Hilfe-Funktionalität. Wird der Parameter angegeben, so erzeugt JewelCli automatische die entsprechende Hilfsausgabe für die definierten Parameter. Daneben gibt es noch eine Reihe weiterer Nutzungsmöglichkeiten. Wenn das Interface definiert ist, ist der Großteil der Arbeit abgeschlossen. Nun muss die Auswertung der Parameter angestoßen werden:

CommandLineOptions result;

try {
    result = CliFactory.parseArguments(CommandLineOptions.class, args);
}
catch (ArgumentValidationException e)
{
    System.out.println(e.getMessage());
    return;
}

Dazu wird die Methode parseArguments der Klasse CliFactory genutzt, welche die Argumente unter Nutzung des definierten Interfaces auswertet. Schlägt dies fehl wird eine Exception ausgelöst und die Nachricht dieser auf der Konsole ausgegeben. Der Quelltext von JewelCli kann unter anderen auf GitHub bezogen werden. Lizenziert ist die Bibliothek unter der Apache-Lizenz und damit freie Software.

Autoformatierung unter Eclipse

Wenn man unter Eclipse in Java entwickelt, so möchte man natürlich das dieser Code formatiert wird. Dafür gibt es je nach System die Kombination Strg + Shift + F oder unter Mac OS X die Kombination Command + Shift + F. Damit wird der aktuell geöffnete Quelltext formatiert.

Die Save Actions in den Eclipse Einstellungen

Die Save Actions in den Eclipse Einstellungen

Alternativ kann Eclipse so eingestellt werden, das der Quelltext beim Speichern neu formatiert wird, was auf Dauer natürlich praktischer ist. Dazu müssen die Einstellungen unter Window -> Preferences -> Java -> Editor-> SaveActions aufgerufen werden. Dort kann die automatische Formatierung der Quellcodes beim Speichern aktiviert werden.

Javadoc-Kommentarblock unter Eclipse erzeugen

Wenn man unter C# einen Kommentarblock zur Dokumentation über einer Methode oder einer Klasse erzeugen möchte so tippt man drei Slashes nebeneinander (///). Anschließend wird ein entsprechender Block zur Kommentierung erzeugt. Unter Eclipse ist dies für Java in abgewandelter Form ebenfalls möglich, in dem ein Javadoc-Kommentarblock automatisch erzeugt wird.

Ein Javadoc-Block zur Beschreibung eines Klasse

Ein Javadoc-Block zur Beschreibung eines Klasse

Dazu gibt man über der Klasse oder Methode welche man kommentieren möchte die Zeichenfolge:

/**

ein und bestätigt das ganze mit der Enter-Taste. Anschließend wird der Javadoc-Block erzeugt und kann vom Entwickler gefüllt werden.

Gogs aktualisieren

Nutzt man die freie Git-Hosting-Lösung Gogs, so kommt man regelmäßig in den Genuss von Updates. Möchte man das Upgrade einspielen, so gibt es einige Dinge zu beachten. Im ersten Schritt sollte der Dienst auf dem Server natürlich beendet werden:

service gogs stop

Anschließend wird in den Kontext des Nutzers gewechselt unter welchem Gogs betrieben wird:

su git
cd

Der nächste Schritt ist der Download der neuen Version, sowie die Verschiebung der alten Version und das Kopieren der Konfigurationsdatei von der alten zur neuen Version:

mv gogs gogs_old
wget https://github.com/gogits/gogs/releases/download/v0.8.10/linux_amd64.zip
unzip linux_amd64.zip 
cp -R gogs_old/custom gogs
cp -R gogs_old/data gogs
cp -R gogs_old/log gogs

Danach wird in den Gogs Ordner gewechselt und Gogs manuell gestartet.

cd gogs
./gogs web

Bei diesem Start wird die Migration der Datenbank durchgeführt. Anschließend kann Gogs wie gehabt genutzt werden. Die heruntergeladene Datei sowie der Ordner gogs_old können anschließend entfernt werden.

Ton unter Mac OS X über HDMI ausgeben

Wenn man ein HDMI-Display unter Mac OS X an den Rechner anschließt, so wird die Ausgabe um das zusätzliche Bild erweitert. Anders sieht es beim Audio aus. Der Ton wird weiterhin über das Standardgerät ausgegeben. Möchte man dies ändern und auch den Ton über HDMI ausgeben muss ein Blick in die Systemeinstellungen geworfen werden.

Die entsprechenden Einstellungen unter Mac OS X

Die entsprechenden Einstellungen unter Mac OS X

Dort findet man unter Ton im Tab Ausgabe die entsprechende Option um den Ton über das HDMI-Gerät ausgeben zu lassen. Nach Auswahl dieser Option wird der Ton anschließend nur noch über das HDMI-Gerät ausgegeben. Wird das HDMI-Gerät entfernt wird die Ausgabe wieder auf das Standardgerät zurückgesetzt.