Eine neue Version der Eclipse IDE veröffentlicht. Die Installation und Neuerungen sind ja bei Heise beschrieben. Dann mal ein Quicktest:
In welcher Höhe fliegen alle Flugzeuge jetzt weltweit (7435)?
Habe dazu ja schon mal ein Java-Programm vorgestellt. Hier nun die Ergebnisse von heute mit 7435 Flugzeugen als Tortendiagramm:
Und noch mal so:
Die Datenbasis:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Flugbereich in Meter ; Flughöhe in Meter Parken 0 ; 467 1-500 ; 392 500-1000 ; 420 1000-2000 ; 551 2000-3000 ; 389 3000-4000 ; 327 4000-5000 ; 286 5000-6000 ; 248 6000-7000 ; 240 7000-8000 ; 324 8000-9000 ; 324 9000-10000 ; 499 10000-10500 ; 585 10500-11000 ; 954 11000-11500 ; 488 11500-12000 ; 574 12000-13000 ; 263 über 13000 ; 104 Summme ; 7435 Zeitpunkt ; Thu May 30 17:10:38 CEST 2019 Quelle ; The OpenSky Network, http://www.opensky-network.org |
Und noch mal als Torte:
60 Sekunden Video: Wie können JUnit-Tests in Eclipse gestartet werden?
Raspberry Pi: Jave UUID perfomance Vergleich Raspberry Pi mit iMac
Wie lange braucht ein Raspberry Pi, im Vergleich zu anderen Rechner, um 100000 UUIDs zu erzeugen und auf der Konsole auszugeben mit einem Test ob doppelte generiert werden. So was ähnliches hatte ich vor 2 Jahren schon mal geschrieben.
Die generierten UUIDs oder Teile davon kann man auch als Passwort verwenden 😉
Hier das kleine Java Programm: „Raspberry Pi: Jave UUID perfomance Vergleich Raspberry Pi mit iMac“ weiterlesen
Java 8 Quickie: Kein PermSize und MaxPermSize – by by java.lang.OutOfMemoryError: PermGen error
Ab Java 8 werden die PermSize und MaxPermSize Kommandozeilen Parameter nicht mehr verwendet. Es wird eine Warnung in der Art:
|
1 2 3 |
Java HotSpot(TM) Server VM warning: ignoring option PermSize=32m; support was removed in 8.0 Java HotSpot(TM) Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0 |
ausgegeben. Also tschüss java.lang.OutOfMemoryError: PermGen error.
Quelle: Oracle.com
Java: Rätsel des Tages
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package de.wenzlaff.twpdftagger; public class RätselDesTages implements Runnable { public static void main(String[] args) { Thread t = new Thread(new RätselDesTages()); t.start(); } @Override public void run() { double d = 3.51f; float f = 1.99f; int i = (int) d + (int) f; System.out.println("Ergebnis: " + i); } } |
Was ist das Ergebnis? „Java: Rätsel des Tages“ weiterlesen
JUnit 5 Quickie: @CsvSource
Mit der @CsvSource Annotation in JUnit 5 kann man mit Kommaseparierte Parameter leicht und übersichtliche Tests schreiben. Die API ist aber noch im EXPERIMENTAL Status.
Hier mal ein Beispiel. Für jeden Kommandozeilen Parameter eine Testmethode schreiben:
„JUnit 5 Quickie: @CsvSource“ weiterlesen
Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen
Seit März 2017 gibt es noch kein neues Release von den Commons CLI. Aber warum die Commandline nicht auch damit auswerten? Macht alles viel übersichtlicher.
Das geht mit ein paar Zeilen Java Code und einen Eintrag in der pom.xml:
|
1 2 3 4 5 |
<dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.4</version> </dependency> |
Hier ein Beispiel snippets: „Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen“ weiterlesen
Java 8 Quickie: Wie können alle bestimmten Dateien eines Verzeichnis in einer Zeile ermittelt werden?
Mit der static Methode Files.newDirectoryStream. Diese Methode gibt es schon seit Java 1.7. Hier mal ein Beispiel für alle PDF Datein im aktuellen Verzeichnis:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
List<Path> pdfDateien = new ArrayList<Path>(); String eingabeVerzeichnis = "."; try { Files.newDirectoryStream(Paths.get(eingabeVerzeichnis), path -> path.toString().endsWith(".pdf")) .forEach(path -> pdfDateien.add(path)); } catch (IOException e) { System.err.println(e); } |
Was kann man gegen eine NoClassDefFoundError (org/bouncycastel.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?
Was kann man gegen eine NoClassDefFoundError (org.bouncycastele.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?
|
1 2 3 4 5 |
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> |
Zur Laufzeit wird die Klasse benötig. Es kommt diese Exc:
Java: Rätsel des Tages
Was ist das Ergebnis?
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/** * Rätsel des Tages. * * @author Thomas Wenzlaff * */ final public class RätselDerWoche { private static int x = 1; static { x++; } public static void main(String[] args) { System.out.println("Ergebnis: " + x); } static { x = 3; } } |
Ergebnis: „Java: Rätsel des Tages“ weiterlesen
JUnit 5 Quickie: @nested 入れ子 und public optional
Update PDF-Formulare automatisch auswerten – PDF-Formulare to CSV (Excel) – Version 0.0.2 veröffentlicht – nun auch für Windows!
Wie hier ausführlich beschrieben, hier nun die Version 0.0.2 für den Raspberry Pi als DEB Archive aber auch als RPM für RedHat und für Windows nur die JAR Datei zum kostenlosen Download twpdfformulartocsv-0.0.2.zip
Einige Funktionen sind nun NEU z.b. die Hilfe, die mit -h aufgerufen werden kann, hier aber erst einmal das BPMN zum Programmablauf:
Die Versions Ausgabe mit -v „Update PDF-Formulare automatisch auswerten – PDF-Formulare to CSV (Excel) – Version 0.0.2 veröffentlicht – nun auch für Windows!“ weiterlesen
Rätsel des Tages: Warum läuft der JUnit 5 Test nicht und zeigt eine Message Box an?
Warum wird beim ausführen dieses JUnit 5 Tests die Fehlermeldung angezeigt, das kein Test vorhanden ist?
Es ist nicht die fehlende @Test Annotation, die wird bei einem @ParameterizedTest nicht gebraucht.
Die Lösung …
„Rätsel des Tages: Warum läuft der JUnit 5 Test nicht und zeigt eine Message Box an?“ weiterlesen
Eclipse Quickie: Testabdeckung anzeigen mit „Coverage As“
In Eclipse kann man leicht die Testabdeckung visualisieren.
Wenn man z.B. einen JUnit Test über den Menüpunkt „Coverage As – JUnit Test“ ausführt:
Alle Zeilen die grün sind, wurden durchlaufen: „Eclipse Quickie: Testabdeckung anzeigen mit „Coverage As““ weiterlesen
PDF-Formulare automatisch auswerten – PDF-Formulare to CSV
Manchmal möchte man mehrere PDF-Formulare automatisch auswerten. Z.B. von einer Umfrage. Also wie bekommt man die im PDF-Formular eingegebenen Felder aller PDF Dateien eines Verzeichnises in eine Excel CSV Datei für die Auswertung? Wie man PDF-Formulare kostenlos erstellt, hatte ich ja schon hier beschrieben.
Das geht mit dem Raspberry Pi (oder auch Mac und Windows) ganz einfach mit dem Java Tool twpdfformulartocsv das ich implementiert habe. Es muss mind. Java 8 auf dem Pi installiert sein. Das kann man mit java -version überprüfen. Es kommt auf dem Pi Zero bei mir
|
1 2 3 |
openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13) OpenJDK Client VM (build 25.181-b13, mixed mode) |
Hier nun die Schritte, um es zu installieren.
„PDF-Formulare automatisch auswerten – PDF-Formulare to CSV“ weiterlesen
Eben veröffentlicht Eclipse IDE 2019‑03 – Better Than Ever – The Eclipse IDE delivers what you need to rapidly innovate – 68.1 million lines of code
Was ist neu?
-Polyglot language support
-First class support for Java, JavaScript, C/C++, PHP, Rust, and others Latest Java™ versions
-Support for building Java™ 11 and Java EE™ 8 based applications
-Improved performance
-Startup time has received a boost this release
-Language Server support
-Solid infrastructure to support integration of language servers
-Proven extensibility
-A huge variety of platform plug-ins
–Free and open source
-Free and open source released under the terms of the Eclipse Public License 2.0
Download hier oder eine schöne Zusammenfassung mit Videos.
JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in zufälliger Reihenfolge (Pseudozufall) ausgeführt werden?
Wie können die Testmethoden einer Klasse automatisch in zufälliger Reihenfolge ausgeführt werden? Ab JUnit 5.4 geht das mit der Annotation @TestMethodOrder. Es wird nur die @TestMethodOrder(MethodOrderer.Random.class) Annotation an der jeweiligen Test-Klasse benötigt. Die Zufallsfunktion wird mit Hilfe der System.nanoTime() Funktion erzeugt. Also ein Pseudozufall. Aber für Test reicht es.
Wir verwenden diese Testklasse: „JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in zufälliger Reihenfolge (Pseudozufall) ausgeführt werden?“ weiterlesen
JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden?
Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden? Ab JUnit 5.4 geht das mit der Annotation @TestMethodOrder
Es wird nur die @TestMethodOrder(MethodOrderer.Alphanumeric.class) Annotation an der jeweiligen Test-Klasse benötigt. Mit dem Alphanumeric wird die Reihenfolge auf alphabetischer gesetzt. „JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden?“ weiterlesen
JUnit Tests nun mit Methoden Reihenfolge via @Order Annotation möglich
Normal sollte die Testreihenfolge ja nicht festgelegt werden. Da eine Test-Methode nicht von einer anderen abhängig sein sollte.
Manchmal wird das aber dennoch benötigt. Das geht jetzt ab JUnit 5.4 ganz einfach mit der @Order Annotation.
Hier eine Beispiel Klasse. „JUnit Tests nun mit Methoden Reihenfolge via @Order Annotation möglich“ weiterlesen
Java Quickie: Ermitteln der Java Version und Home Verzeichnis
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@Test public void ermittleJavaVersion() { assertEquals("1.8.0_131", System.getProperties().get("java.version")); } @Test public void ermittleJavaHome() { assertEquals("/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre", System.getProperties().get("java.home")); } |
Wie kann eine Zeile in Eclipse schnell dupliziert werden?
Das geht nicht nur in der aktuellen Eclipse Version, sondern schon etwas länger.
Einfach die folgenden drei Tasten drücken: Alt + Cmd + Pfeil nach unten und schon wird die Zeile wo der Cursor steht kopiert.
Das geht für Java

und auch für XML usw. „Wie kann eine Zeile in Eclipse schnell dupliziert werden?“ weiterlesen
Letzte Woche wurde das JUnit 5.4.0 Release veröffentlicht
Also mal testen ob alle läuft? Kleine Änderung in der pom.xml
|
1 2 3 4 |
<junit.version>4.12</junit.version> <junit.jupiter.version>5.4.0</junit.jupiter.version> <junit.vintage.version>5.4.0</junit.vintage.version> <junit.platform.version>1.4.0</junit.platform.version> |
Dann mal zwei Projekt umstellen. Siehe da, die Buildpipeline laufen auch noch wie erwartet:
und die auch „Letzte Woche wurde das JUnit 5.4.0 Release veröffentlicht“ weiterlesen
Java Thread – 6 State oder wie starten wir ein einfaches Java Programm auf dem Raspberry Pi
Es gibt 6 State im Enum:
Es gibt mind. diese Status:
Hier mal ein Beispiel, für einige Status. Die Thread-Klasse die nur 5 Sekunden warte: „Java Thread – 6 State oder wie starten wir ein einfaches Java Programm auf dem Raspberry Pi“ weiterlesen
Neue M1 Version von JUnit 5.4.0 veröffentlicht
Es wurde vorgestern eine neue Version von JUnit 5 veröffentlicht,
siehe https://junit.org/junit5/docs/5.4.0-M1/release-notes/
Mindmap zum Thema „Neue M1 Version von JUnit 5.4.0 veröffentlicht“ weiterlesen
Build Pipeline mit YAML Script zum erzeugen eines *.deb Archives mit Maven und jdeb für Debian auf Raspberry Pi mit GitLab
Build Pipeline mit YAML Script zum erzeugen eines *.deb Archives mit Maven für Debian auf Raspberry Pi.
Oder wie kann man ein *.deb Archive mit Maven Plugin erzeugen?
Oder wie verpackt man ein JAR in ein deb Archive, um es einfach auf einem Raspberr Pi zu installieren?
Oder wer braucht ein Template für das erzeugen von Maven Artefacten mit einer automatischen Pipeline in GitLab?
Oder wie validiere ich die Build-Scripte der Build-Pipeline?

Auf diese ua. Frage gibt dieser Blog-Artikel Auskunft.
Wir wollen eine Build-Pipeline mit mehreren Javaversionen, test und build bzw. deploy erstellen. Hier der Flow der Pipeline:
So sieht die Pipeline mit den drei Stages aus: „Build Pipeline mit YAML Script zum erzeugen eines *.deb Archives mit Maven und jdeb für Debian auf Raspberry Pi mit GitLab“ weiterlesen
Raspberry Pi: Um welche Uhrzeit wird immer der letzte Kaffee am Tag gekocht?
Vor ein paar Tagen hatte ich die Auswertung zum Kaffeeverbrauch gepostet. Die Daten werden ja online von einem meiner Raspberry Pi erfasst. Gestern der Beitrag zu der Frage: Wann der 1. Kaffee des Tages gekocht wird.
Heute habe ich mal gefragt, um welche Uhrzeit wird bei uns eigentlich der letzte Kaffee am Abend gekocht? Man soll ja vor dem zu Bett gehen nicht noch viel Kaffee trinken.
Die Antwort im Durchschnitt um 15:14 Uhr. Der gemessene Zeitraum ist fast 2 Jahre mit über 500 Messwerte. Hier dazu die Grafik mit der Uhrzeit als Y Wert. X ist die Anzahl der Messungen (Tage). Die rote Linie der Mittelwert.

Und weil ich Diagramme liebe, noch mal eins mit Punkten … „Raspberry Pi: Um welche Uhrzeit wird immer der letzte Kaffee am Tag gekocht?“ weiterlesen
Raspberry Pi: Um welche Uhrzeit wird immer der 1. Kaffee am Tag gekocht?
Gestern hatte ich die Auswertung zum Kaffeeverbrauch gepostet. Die Daten werden ja von einem meiner Raspberry Pi erfasst.
Heute habe ich mal gefragt, um welche Uhrzeit wird bei uns eigentlich der 1. Kaffee gekocht? Die Antwort im Durchschnitt um 6:54 Uhr. Der gemessene Zeitraum ist fast 2 Jahre mit über 500 Messwerte. Hier dazu die Grafik mit der Uhrzeit als Y Wert. X ist die Anzahl der Messungen (Tage)

Java 8 Quickie: Zeitzonen Umwandlung mit ZonedDateTime: UTC nach Europas Zeitzone

Manchmal hat man Zeitangaben z.B. aus IOT Geräten in der Form eines Strings „2018-12-10 12:14:15 UTC“. Nun müssen die Zeitangaben die in UTC verwendet werden in die lokale Zeitzone für Europa/Berlin umgewandelt werden. Das ist in der Regel eine Stunde plus. Wie geht das aber mit der Java 8 API?
Java 8 Quickie: Alle Zeitzonen mit getAvailableZoneIds mit Java ermitteln

Wie können alle Zeitzonen mit Java ermittelt werden? Das geht mit der Methode getAvailableZoneIds der Klasse ZoneId. Die Methode ist thread save und der Set kann zukünftig noch erweitert werden. Bei mir ist er heute 600 Einträge (IDs) groß, wie dieser JUnit Test zeigt:
@Test
public void testGetAlleZeitzonen(){
List
Das sind die Zeitzonen IDs:
„Java 8 Quickie: Alle Zeitzonen mit getAvailableZoneIds mit Java ermitteln“ weiterlesen























