jar-Datei in eine exe-Datei verpacken

Bei der Entwicklung von Java-Applikationen kommt am Ende meist eine jar-Datei (die Kurzform von Java Archive) heraus. Soll diese Datei an Otto Normalverbraucher unter Windows ausgeliefert werden, so wundert sich dieser sicherlich etwas. Immerhin erwarten die meisten Normalverbraucher eine ausführbare Datei in Form einer exe-Datei. Mit Hilfe des Tools Launch4j ist das genau das möglich. Launch4j wrappt die jar-Datei und erzeugt eine ausführbare exe-Datei. Daneben kann Launch4j einfache Starter erzeugen, ohne das ganze in eine ausführbare Datei zu wrappen.

Die Projektseite von Launch4j

Launch4j erzeugt zwar ausführbare Dateien für Windows, allerdings kann das es selber neben Windows auch unter macOS und Linux genutzt werden. Die offizielle Seite des Projektes ist unter launch4j.sourceforge.net zu finden. Lizenziert ist Launch4j unter der BSD-Lizenz und damit freie Software. Der Quellcode ist auf SourceForge zu finden, daneben existiert ein Mirror auf GitHub.

Offene Gesetze

Nachdem Gesetze in Deutschland verabschiedet wurden, werden sie im Bundesgesetzblatt veröffentlicht und dadurch verbindlich. Geregelt wird dies im Artikel 82 des Grundgesetzes. Dort heißt es:

Die nach den Vorschriften dieses Grundgesetzes zustande gekommenen Gesetze werden vom Bundespräsidenten nach Gegenzeichnung ausgefertigt und im Bundesgesetzblatte verkündet. Rechtsverordnungen werden von der Stelle, die sie erläßt, ausgefertigt und vorbehaltlich anderweitiger gesetzlicher Regelung im Bundesgesetzblatte verkündet.

Problematisch daran ist dass der Bundesanzeiger-Verlag, welcher für die Veröffentlichung zuständig ist, seit 2006 privatisiert wurde. Mittlerweile ist der Verlag im Besitz der Dumont-Mediengruppe. Für ein entsprechendes Abo, ist es möglich auf die Bestände der Bundesgesetzblätter zuzugreifen. Eigentlich ein Unding, bei Gesetzten an die sich die Bevölkerung halten soll. Die Bundesgesetzblätter sind als amtliche Drucksachen nicht schützenswert. Stattdessen wird seitens des Verlages mit dem Datenbankschutz argumentiert. Da die Dokumente zu einer Datenbank zusammengefasst wurden; ist dies ein Werk, welches wieder Schutzrechte genießen soll.

Das Portal Offene Gesetze

Alles in allem eine fragwürdige Konstruktion, mit der das Portal Offene Gesetze, zu finden unter offenegesetze.de aufräumen will. Dort findet man sämtliche Bundesgesetzblätter seit 1949. Die Bundesgesetzblätter können durchsucht, gedruckt oder als Ganzes heruntergeladen werden. Daneben wird eine API bereitgestellt, mit welcher ebenfalls auf die Dokumente zugegriffen werden kann. Zu Beachten ist dass die Bundesgesetzblätter keine vollständigen Gesetze (außer bei der erstmaligen Veröffentlichung des Gesetztes), sondern die jeweiligen Änderungen enthalten.

Betrieben wird das Portal von der Open Knowledge Foundation Deutschland. Dabei handelt es sich um einen offiziellen Chapter der Open Knowledge Foundation. Die verwendete Software ist auf GitHub zu finden, unter der MIT-Lizenz lizenziert und damit freie Software.

Zettlr – ein flexibler Markdown-Editor

Die letzten Tage verbrachte ich unter anderem damit mir unterschiedliche Markdown-Editoren anzuschauen. In die Kategorie sehenswert fiel der Markdown-Editor Zettlr. Bei Zettlr öffnet man einen Ordner und kann anschließend in diesem und seinen Unterordnern bestehende und neu anzulegende Dateien bearbeiten. Die Markdown-Formatierungen, wie Überschriften, Zitate, Fett- und Kursivstellungen, werden entsprechend hervorgehoben.

Die Darstellung der Markdown-Formatiierung

Die eingebauten Features sind eher übersichtlich in Zettlr angelegt; eine Rechtschreibprüfung und eine Exportmöglichkeit sind der einzige Zuckerguss neben den grundlegenden Bearbeitungsfunktionen. Das kann sich natürlich in der Zukunft noch ändern, da der Editor momentan in Version 0.17.1 vorliegt.

Zettlr unter Windows

Der Quelltext von Zettlr ist auf GitHub zu finden. Während er früher unter der MIT-Lizenz lizenziert war, wurde er vor einigen Monaten auf die GPL in der Version 3 umgestellt. Unter beiden Lizenzen handelt es sich bei Zettlr um freie Software. Bezogen werden kann die Applikation über die offizielle Projektseite unter zettlr.com.

Thermostat für den Körper

Vor einigen Jahren las ich etwas über eine Entwicklung am MIT. Dort wurde das Handgelenk beheizt, was dazu führte das den Versuchspersonen wärmer wurde. Praktisch handelte es sich bei der Idee um ein Thermostat für den Körper, ohne diesen komplett zu beheizen.

embrlabs.com

Später gab es basierend auf dieser Entwicklung eine Ausgründung unter dem Namen EMBR Labs. Das passende Produkt trägt nun den Namen Embr Wave und wurde über Kickstarter finanziert. Mittlerweile kann man das Armband über die Seite des Herstellers vorbestellen.

Java-Projekte automatisch erzeugen

Es gibt praktische Software und dann gibt es manchmal Anwendungen bei denen man sich fragt was genau der Anwendungszweck ist. Eine dieser Anwendungen ist der Java Bullshifier. Die einzige Aufgabe des Java Bullshifier ist es, riesige Java-Projekte zu erzeugen.

Die Projekt-Webseite

Selbst im Vorstellungsartikel des Tools wird die Meinung vertreten, das es ein wenig esoterisch wirkt. Im Artikel wird allerdings ebenfalls die Motivation bzw. die Nutzung des Tools beschrieben:

It’s used in order to test some of our monitoring capabilities over ridiculously large code bases, with transactions that go thousands of calls deep, over thousands of classes, and end up with exceptions.

Erzeugt werden ein Projekt mit einer beliebigen Anzahl an Klassen und für eine Klasse sieht der generierte Quelltext exemplarisch wie folgt aus:

package generated.afz.qen.lrlj;

import helpers.Config;
import helpers.Context;
import java.util.*;
import java.util.logging.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;

public class ClsTvxlbccvg
{
    public static final int classId = 325;
    static final Logger logger = LoggerFactory.getLogger(ClsTvxlbccvg.class);

    public static void metWrkbglgpwrbj(Context context) throws Exception
    {
        int methodId = 0;
        Object[] root = new Object[8];
        Map<Object, Object> valUmbeeuzlkcg = new HashMap();
        Object[] mapValTaglolagfcm = new Object[10];
        String valLjtuhkvukba = "StrHwrvspzqwyp";

        mapValTaglolagfcm[0] = valLjtuhkvukba;
    
        for (int i = 1; i < 10; i++)
        {
            mapValTaglolagfcm[i] = Config.get().getRandom().nextInt(1000);
        }

        Set<Object> mapKeyGfqzkkkweud = new HashSet<Object>();
        long valZqatretqosu = 2690648861024756176L;

Der Quelltext des Java Bullshifier ist auf GitHub zu finden. Er ist unter der MIT-Lizenz lizenziert und damit freie Software.