Swing-Anwendung zur Abfrage eines MCP-Servers (z. B. n8n „MCP Server Trigger“). Hier nun noch ein Java 21 MCP-Client der sich an den hier erwähnten MCP-Server Verbindet.

Der Code liegt in meinem Gitlab Repo.

Wenzlaff.de – Rund um die Programmierung
mit KI, n8n, Java, Raspberry Pi, SDR, Arduino, Sicherheit, Blender, Statistik, Krypto und Blockchain
Die Kombination aus ArchUnit und einem PlantUML-Export für Dependency-Graphs bringt einen direkten Zusammenhang zwischen implementierter Softwarearchitektur und ihrer visuellen Darstellung. Dadurch entsteht eine sogenannte Living Architecture, bei der die Architektur nicht mehr als statisches Dokument existiert, sondern kontinuierlich aus dem tatsächlichen Codebestand abgeleitet wird.
Das reduziert die Gefahr veralteter oder inkonsistenter Architekturdiagramme erheblich, da jede Änderung im Code automatisch in der Struktur sichtbar wird.

Ein weiterer Vorteil liegt in der automatisierten Validierung der Architekturregeln durch ArchUnit.
Fehlende Schichttrennung, unerlaubte Abhängigkeiten oder zyklische Beziehungen werden frühzeitig erkannt und können bereits im Build-Prozess verhindert werden. Der PlantUML-Export ergänzt diese Regelprüfung um eine visuelle Ebene, die insbesondere bei komplexeren Systemen die Verständlichkeit der Architektur deutlich verbessert.
Zusätzlich entsteht eine hohe Transparenz über Paket- und Modulabhängigkeiten. Entwickler können auf einen Blick erkennen, wie sich Komponenten gegenseitig beeinflussen und wo potenzielle strukturelle Probleme liegen. Dies unterstützt sowohl die Wartbarkeit als auch die Weiterentwicklung des Systems, da Architekturentscheidungen nachvollziehbar und überprüfbar bleiben. Insgesamt führt dieser Ansatz zu einer stärker kontrollierten, konsistenten und langfristig stabilen Softwarearchitektur.
Automatisch generiert aus Code mal mit Archunit, erzeugt z.B. die obige UML Datei (puml mit Eclipse-Plugin für autom. Rendern) mit folgenden Vorteilen: „Automatisch UML Generierung (plantUML-Format) mit ArchUnit“ weiterlesen
Die Möglichkeit, Quellcode in der Eclipse IDE zu vergleichen, ist äußerst nützlich, um Änderungen in Ihrem Code nachzuvollziehen. Das Ausschalten von Leerzeichen während des Vergleichs kann dazu beitragen, Code-Konsistenz zu gewährleisten und Platz zu sparen. Das geht jetzt ganz einfach über die Toolbar über diesen Button:

Die Eclipse Integrated Development Environment (IDE) ist eine der beliebtesten Entwicklungsplattformen für Programmierer weltweit. „Warum Leerzeichen im Source-Code von Eclipse entfernen?“ weiterlesen
Das Königsberger Brückenproblem ist eine klassische mathematische Herausforderung, die im 18. Jahrhundert entstand und einen wichtigen Einfluss auf die Entwicklung der Graphentheorie hatte. Es handelt sich um eine Fragestellung bezüglich der Überquerung von Brücken über den Flüssen Pregel und seinen Inseln in der Stadt Königsberg (heute Kaliningrad, Russland). Das Problem wurde erstmals von dem Schweizer Mathematiker Leonhard Euler im Jahr 1735 gelöst und legte den Grundstein für die moderne Graphentheorie.
In Königsberg gab es sieben Brücken, die die Flüsse Pregel und die beiden Inseln verbunden haben. Die Frage war, ob es möglich war, die Stadt zu durchqueren, indem man jede Brücke nur einmal überquerte und schließlich an einem beliebigen Punkt endete.

Euler bewies, dass es keine Möglichkeit gibt, das Königsberger Brückenproblem zu lösen. Er zeigte, dass mindestens zwei der vier Landpunkte eine ungerade Anzahl von Brücken haben müssten, um eine Lösung unmöglich zu machen. Dies führte zur Entwicklung der Graphentheorie, bei der das Problem als ein Graph dargestellt werden kann, wobei die Landpunkte die Knoten und die Brücken die Kanten des Graphen sind.
Da kommt nun die Implementierung mit JGraphT in Java ins Spiel. „Königsberger Brückenproblem oder etwas Graphentheorie mit jgrapht in Java“ weiterlesen
Java Sets bieten eine leistungsstarke und flexible Möglichkeit, eindeutige Elemente zu speichern und damit umzugehen, ohne sich um die Verwaltung von Duplikaten kümmern zu müssen. Die Wahl der geeigneten Set-Implementierung hängt von den spezifischen Anforderungen Ihrer Anwendung ab.
Set ist eine Schnittstelle (Interface) in der Java-Programmiersprache, die eine Sammlung von eindeutigen, nicht doppelten Elementen repräsentiert. Es gibt verschiedene Implementierungen von Sets in Java, darunter HashSet, LinkedHashSet und TreeSet. Die Verwendung von Java Sets bietet mehrere Vorteile: „Java Sets (Interface): eine leistungsstarke und flexible Möglichkeit für eindeutige Elemente“ weiterlesen
Ein einfaches pinout gibt auf dem Pi die Belegung aus. Cool! Hier die Ausgabe eines Raspberry Pi Zero W

Der Raspberry Pi ist ein vielseitiger Einplatinencomputer, der in den letzten Jahren enorm an Popularität gewonnen hat. Eines seiner bemerkenswertesten Merkmale ist die General Purpose Input Output (GPIO) Schnittstelle. GPIO ermöglicht es dem Raspberry Pi, mit der physischen Welt zu interagieren, indem es digitale Signale sendet und empfängt. „pinout – die GPIO-Schnittstelle des Raspberry Pi“ weiterlesen
Git ist ein weit verbreitetes verteiltes Versionsverwaltungssystem, das eine effiziente und flexible Möglichkeit bietet, Code zu verwalten. Mit Git können Entwickler Änderungen am Code nachverfolgen, zusammenführen und rückgängig machen. Es ist einfach zu erlernen, jedoch mächtig genug, um komplexe Projekte zu handhaben.
Git ermöglicht auch die Zusammenarbeit von Teams, indem es die Verwaltung von Code-Änderungen und die Integration von Features erleichtert.

Am 12.3.2023 ist eine neue Version von git mit diesen Releasenotes veröffentlicht worden. Wenn das kein Grund ist mal ein update durchzuführen. „git -v = git version 2.40.0“ weiterlesen
Git ist ein verteiltes Versionskontrollsystem für Software-Entwicklungsprojekte. Es erlaubt Entwicklern, Änderungen an Code und Dokumentation zu verfolgen, zusammenzuführen und zu speichern, während es gleichzeitig die Möglichkeit bietet, Änderungen rückgängig zu machen. Git ermöglicht eine effektive Zusammenarbeit in Teams und die Verwaltung von verschiedenen Versionen eines Projekts. Es ist weit verbreitet und wird von vielen Open-Source-Projekten und Unternehmen genutzt. Wenn das kein Grund ist mal einen git Kurs zu machen.
Wer git onlinen kostenlos lernen will, kann das mit dieser sehr gut gemachten Seite tun. Ausser deutsch werden auch diese Sprachen unterstüzt:

Man braucht auf learngitbranching nichts einzurichten und kann gleich loslegen: „Kostenloser online git Kurs“ weiterlesen
Das Twitter Intelligence Tool (TWINT) mit Web-Scraping-Technologie kann auch auf einem Raspberry Pi installiert werden.

Mit dem Web Scraper für Twitter, mit dem man Tweets von Usern des Kurznachrichtendienstes einholen kann, ohne dabei vom Twitter API eingeschränkt zu werden läuft unter der MIT-Lizenz (Anleitung Twitter-Intelligence-Tool.pdf). TWINT wurde in Python geschrieben, ist am April 2020 in Version 2.1.20 erschienen. Alle Funktionen gehen aber nicht mehr, weil sich die Twitter API geändert hat. Z.b. wirft ein twint -u programmierung –following diesen Fehler:
CRITICAL:root:twint.feed:Follow:IndexError
Aber einiges geht doch noch. Also mal installieren mit:
pip3 install twint
wenn dann nicht alles geht, hat bei mir geholfen:
|
1 2 |
sudo apt-get install libatlas-base-dev pip3 install --upgrade -e git+https://github.com/twintproject/twint.git@origin/master#egg=twint |
So ein erster Test, alle Befehle ausgeben mit twint -h …: „Twitter Intelligence Tool (TWINT) mit Web-Scraping-Technologie auf dem Raspberry Pi Zero nicht Pi Zero 2 W mit ARM-SoC Broadcom BCM2837 vier ARM Cortex-A53 und 64-Bit-taugliche ARMv8-Kerne“ weiterlesen
Mit JSoup kann ganz einfach eine Webseite gelesen werden.
|
1 2 3 4 5 |
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.12.2</version> </dependency> |
ergänzen und folgenden Einzeiler:
System.out.println(„Webseite: “ + Jsoup.connect(„http://wenzlaff.info“).get().html());
Das Ergebnis ist dann die HTML Seite. Mit JSoup können auch einfach Filter und Selektoren erstellt werden. Es unterstüzt leider kein JavaScript.
Dafür kann dann HtmlUnit oder Selenium verwendet werden.
Für die Entwicklung von REST APIs ist die Swagger-UI sehr hilfreich.
Ok, dann wollen wir mal in einem Quarkus Projekt eine Swagger-UI hinzufügen. Das geht mit einem Befehl, da Quarkus einen guten Plugin Mechanismus hat:
./mvnw quarkus:add-extension -Dextensions=“openapi“
Nach 27 Sekunden kommt das Build Success:
|
1 2 3 4 |
[INFO] --- quarkus-maven-plugin:0.24.0:add-extension (default-cli) @ info-kleinhirn --- ✅ Adding extension io.quarkus:quarkus-smallrye-openapi [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS |
So, das wars schon. Nun noch die Anwendung starten mit „Swagger-UI in 5 Minuten auf einen Raspberry Pi einem Quarkus Projekt hinzufügen!“ weiterlesen
Wenn das kein Grund ist mal die neue Version zu testen. Quarkus ist ein relativ neues Framework, welches die leichtgewichtige Entwicklung von Java-Anwendungen nach dem „Container-first“-Prinzip macht. Es wird von Red Hat gesponsert und macht die Entwicklung von Microservices einfacher. Was Entwickler besonders gefällt ist das Live Reloading so das man gemachte Änderungen sofort „sieht“.
Also gleich ein Build it. Save it. Run it. – und das mit Java:
./mvnw compile quarkus:dev
Das klappt ja schon mal, nun ein
./mvnw clean package
Package bauen: „Quicktest: Gestern wurde Quarkus 0.24.0 released – „Container First““ weiterlesen
Javalin wurde vor ein paar Tagen in der Version 3.3.0 veröffentlicht. Was dieser Framwork kann, zeigt diese Mindmap:
Mit einem Zweizeiler kann in Java schnell eine Anwendung erstellt werden. Es wird nur die Abhängkeit in der pom.xml erwartet: „Javalin Framwork nicht nur für Java vor ein paar Tagen in Version 3.3.0 veröffentlicht“ weiterlesen
Das geht mit dem Lombok Projekt.
Für eine Java-Daten Klasse z.B. Arzt
|
1 2 3 4 5 6 7 8 9 10 |
@Data public class Arzt { private String titel; private String vorname; private String name; } |
wird dann automatisch folgendes generiert: „Wie kann Boilerplate Code in Java reduziert werden?“ weiterlesen
OpenSky bietet eine Java API an um auf Flugdaten zugreifen zu können. Da die live API nun wieder online ist, schreiben wir einen kleine JUnit Test und formen mal alle Transponderdaten aller 4754 Flugzeuge in eine KML Datei, um die Daten auf Google Earth anzuzeigen. Hier erst einmal das Ergebnis in Google Earth aus 5569 Km Höhe gesehen:
Wer die die Daten testweise laden will, „OpenSky Java API to KML für Google Earth – Teil 1“ weiterlesen
Wie können mit Java PDF Dokumente erzeugt werden?
Das geht mit ein paar Zeilen Code und iText. Die iText Lib läßt sich leicht integrieren. Hier mal ein Beispiel um ein paar Daten zu haben, nehmen wir mal einen Lebenskalender. Der ganze Code (nur eine Java Klasse) liegt auf Github und kann von dort geladen werden.
Also mal ein neues Mavenprojekt anlegen und in der pom.xml die iText Abhängigkeit einfügen:
|
1 2 3 4 5 |
<dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>4.2.0</version> </dependency> |
Dann mal ein paar Zeilen Javacode für die PDF Erzeugung z.B. so:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
private static void printPdfDokument(List<String> kalender) throws DocumentException, FileNotFoundException { Document document = new Document(PageSize.A4); PdfWriter.getInstance(document, new FileOutputStream("lebenskalender.pdf")); document.open(); Font f = new Font(); f.setFamily("Courier"); f.setSize(10); for (String woche : kalender) { document.add(new Paragraph(woche, f)); } document.close(); } |
und schon können wir ein PDF Dokument erzeugen. Hier das Ergebnis lebenskalender.pdf.
Hier mal die Ausgabe auf System.out:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
Lebenskalender Berechne von aktuellem Alter 52 Jahren und 7 Monate Jahre Wochen 0 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 3 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 10 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 11 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 12 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 13 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 14 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 15 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 16 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 17 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 18 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 19 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 20 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 21 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 22 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 23 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 24 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 25 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 26 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 27 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 28 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 29 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 30 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 31 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 32 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 33 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 34 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 35 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 36 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 37 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 38 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 39 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 40 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 41 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 42 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 43 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 44 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 45 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 46 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 47 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 48 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 49 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 50 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 51 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 52 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 53 XXXXXXXXXXXXXXXXXXXXXXXXXXXX........................ 54 .................................................... 55 .................................................... 56 .................................................... 57 .................................................... 58 .................................................... 59 .................................................... 60 .................................................... 61 .................................................... 62 .................................................... 63 .................................................... 64 .................................................... 65 .................................................... 66 .................................................... 67 .................................................... 68 .................................................... 69 .................................................... 70 .................................................... 71 .................................................... 72 .................................................... 73 .................................................... 74 .................................................... 75 .................................................... 76 .................................................... 77 .................................................... Lebenserwartung in Deutschland: Männer 77 Jahre 9 Monate Frauen 82 Jahre 10 Monate Statistisch also noch: 27 Jahre als Mann zu leben! |
„PDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender“ weiterlesen
In älteren OSGI Versionen konnte die Konsole einfach über einen Aufruf:
|
1 |
java -jar org.eclipse.osgi_VERSION.jar -console |
gestartet werden. In neueren Versionen läuft es nicht mehr. D.h. es gibt noch nicht einmal eine Fehlermeldung.
Die neue Konsole ist nun Teil von der Apache Felix Gogo shell. Ab dem Eclipse Release 4.4 (Luna) ist die Built-in OSGi-Konsole komplett von dem Equinox Framework entfernt worden. „Warum läuft die OSGI-Konsole in neueren Versionen nicht mehr so wie früher?“ weiterlesen
Wenn man ein Projekt auf GitHub gefunden hat, wo man Änderungen bzw. Ergänzungen hochladen will, geht dies wie folgt.
Voraussetzung ist, dass man auf GitHub erfolgreich angemeldet ist. „Wie können Änderungen auf GitHub ergänzt werden?“ weiterlesen
Nach der Installation des binären Package läuft Jenkins nicht unter der URL http://localhost:8080/ und es kommt zu einer 404 Fehlermeldung. Was tun?
1. Einen eigenen jenkins User anlegen mit:
|
1 2 3 4 5 6 7 |
sudo dscl . create /Users/jenkins sudo dscl . create /Users/jenkins PrimaryGroupID 1 sudo dscl . create /Users/jenkins UniqueID 300 sudo dscl . create /Users/jenkins UserShell /bin/bash sudo dscl . create /Users/jenkins home /Users/Shared/Jenkins/Home/ sudo dscl . create /Users/jenkins NFSHomeDirectory /Users/Shared/Jenkins/Home/ sudo dscl . passwd /Users/jenkins |
2. Die Datei /Library/LaunchDaemons/org.jenkins-ci.plist
wie folgt in den User ändern:
|
1 2 |
<key>UserName</key> <string>jenkins</string> |
3. Das Home Verzeichnis /Users/Shared/Jenkins/Home einen neuen Besitzer geben mit:
|
1 |
sudo chown -R jenkins /Users/Shared/Jenkins |
4. Restarte des Services mit:
|
1 2 |
sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist |
5. Im Browser testen ob die Jenkins Gui angezeigt wird mit URL http://localhost:8080/
In Java 7 gibt es jetzt den „diamond Operator“. Nun müssen bei generics keine Typen doppelt deklariert werden.
Hier ein Beispiel vorher und nachher:
List<Integer> liste = new ArrayList<Integer>(); // vor JRE 7
List<Integer> diamantListe = new ArrayList<>(); // ab JRE 7, ja Diamonds are forever
So, jetzt ist Java 7 da. Was braucht man zum ausprobieren?
Eine Eclipse Version die Java 7 unterstützt. Das geht noch nicht mit Helios. Deshalb einen „Nightly Build“ herunterladen.
Dann über Update neue Software über diese URL den JDK 7 patch herunterladen.
Was dann noch fehlt ist das JDK 7 von Oracle.
In den Projekt Einstellungen unter Java Compiler die 1.7 auswählen und nun der erste Test.
In Java 1.7 sind jetzt Unterstriche (_) in Literalen möglich, um besser zu gliedern z.B.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
public class TestJava7 { private static long telefonNummer_1 = 11_22_33_44L; private static double telefonNummer_2 = 11_22.3_3d; public static void main(String[] args) { System.out.println("Telefonnummer 1: " + telefonNummer_1); System.out.println("Telefonnummer 2: " + telefonNummer_2); } } |
Das Ergebnis:
Telefonnummer 1: 11223344
Telefonnummer 2: 1122.33
Weitere Neuerungen mit Beispielen wie „String in switch“ kommen hier dann demnächst.
Ab Java 1.5 kann der aktuelle Methodenname wie folgt ermittelt werden „Dynamisches ermitteln des aktuellen Methodennamen“ weiterlesen
Für den ersten Einstieg in die OOP zum Downloaden und auch als zip.
Mindestens einmal pro Woche erscheinen hier die Tips zur Programmierung rund um Java.
Der wöchentliche 5-10 Minuten-Snack für zwischendurch.
Perfekt für alle, die nebenbei ihr Kenntnisse auffrischen, erweitern und verbessern wollen.