Java Getriebe

Java und NetBeans

Selbstaktualisierende Anwendungen

Bei heutige Software wird vom Anwender schon fast vorausgesetzt, dass die Anwendung automatisch „im Internet“ nachschaut ob eine neuere Version seiner Selbst vorhanden ist und im positiven Fall dann auch automatisch eine Aktualisierung von sich selbst auf dem lokalen Rechner vornimmt. Allerdings stellt sich diese „Selbstverständlichkeit“ in der Praxis oft als erst zu nehmendes Problem heraus: Wie bitte schön, soll ich eine Datei (also die Jar-Datei) mit neuem Inhalt befüllen, wenn sie gerade geöffnet und für Änderungen gesperrt ist? Schließlich werden die .class-Datei aus der Datei gerade von der Java-VM verwendet. Vielleicht ist dies auch ein Grund, warum es keine Standardlösung von Java selbst existiert um mit dieser Problematik umzugehen. Read More

Dateiüberwachung in Java 7

Die meisten modernen Dateisysteme bieten die Möglichkeit Änderungen an Dateien oder das Erstellen bzw. Löschen von Dateien als „Event“ an die Anwendungsprogramme zu senden. Für die Anwendung bietet dies den Vorteil, dass sie nicht ständig selber auf der Platte nachsehen muss ob sich etwas geändert hat („polling“). Dies erzeugt eigentlich nur unnötige Zugriffe auf die Festplatte und kann je nach Anzahl der „überwachten“ Dateien bzw. Verzeichnissen auch schon mal das System blockieren (wenns ganz blöd läuft).

Diese hardwarenahe Funktion waren bis zur Version 6 von Java nicht direkt verfügbar. Es mussten schon mit irgendwelchen JNI/JNA Schnittstellen gearbeitet werden. Ab Java 7 gibt es ein neues Paket java.nio.file in dem Zugriffsklasse auf die lokalen Dateisysteme ermöglicht werden. Read More