Java Getriebe

Java und NetBeans

SecondaryLoop – Der saubere SwingWorker

Der Herr Ullenboom hat mich durch seinen Java-Blog auf ein interessantes Feature in Java 7 aufmerksam gemacht: java.awt.SecondaryLoop. Im Blogeintrag Hidden Java 7 Features – SecondaryLoop auf sellmic.com wird nett beschrieben, wie man nebenläufige Tasks für eine UI schreiben kann ohne den EDT zu blockieren und trotzdem seinen Quelltext „sauber“ zu halten.

Anwendungsfälle fallen mir beim meinen Programmen auf Anhieb einige ein, bei denen ich mit dem SwingWorker ein paar Klimmzüge veranstaltet habe.

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

Toni Epple: Vorbereitungen für JDK 7

Toni Epple hat für JAXenter einen (längeren) Artikel mit einer Zusammenfassung der Neuerungen in NetBeans 7.0 geschrieben.

Sein Fazit:

Insgesamt ist NetBeans 7.0 ein solides Update ohne spektakuläre Überraschungen. Das NetBeans-Team hat sich mit dem neuen Release auf die wesentlichen Eigenschaften einer Java-Entwicklungsumgebung konzentriert. Die IDE wurde erwartungsgemäß besser mit dem Oracle-Stack integriert und an aktuelle Versionen vieler verwendeter Tools und Bibliotheken angepasst. Die hervorragende Java EE-Unterstützung wurde verbessert und ausgeweitet. Die meiste Arbeit wurde aber in der Unterstützung der nächsten Version der JDK geleistet. Das ist eine notwendige Vorbereitung und praktisch zum Testen der neuesten Sprachfeatures und APIs. Einige kleine Verbesserungen, vor allem bei der Verwendung Unittests machen sich im täglichen Gebrauch schnell positiv bemerkbar. Unter den Neuentwicklungen ist vor allem die GIT-Unterstützung ein wichtiger Schritt vorwärts. Das neue Release ist damit vor allem eine praktische Verbesserung, die sich auf die tatsächlichen Kernaufgaben der IDE konzentriert und einiges an Verbesserungen für den alltäglichen Gebrauch mitbringt.