Mit dem Raspberry Pi den Java Class File Disassembler (javap) aufrufen

Manchmal will man sehen, was alles so in einer compilierten Java Datei steckt. Nicht immer hat man den Quelltext. Auch für die Fehlersuche ist ein Disassembler mal ganz gut.

In jedem JDK ist auch ein Disassembler javap dabei. Denn wollen wir nun einmal auf eine unbekannte Java Class Datei loslassen, um zu sehen, was es so zu sehen gibt.

Zuerst loggen wir uns auf die Kommandozeile eines Raspberry Pi ein, auf dem ein Java JDK installiert ist. Ob Java installiert ist kann mit

getestet werden. Wenn dort eine Versionsangabe geliefert wird, ist alles ok.

Dann legen wir erst mal ein Testverzeichnis an und wechsel in das Verzeichnis:

Dann holen wir uns in das Verzeichnis eine unbekannte Flugzeug.class Datei (der Quellcode ist hier zu finden):

Diese Datei wollen wir nun disassemblieren, mit

Schon bekommen wir alle gewünschten Informationen:

Nun schauen wir uns mal alle Möglichkeiten an: „Mit dem Raspberry Pi den Java Class File Disassembler (javap) aufrufen“ weiterlesen

PDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender

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:

Dann mal ein paar Zeilen Javacode für die PDF Erzeugung z.B. so:

und schon können wir ein PDF Dokument erzeugen. Hier das Ergebnis lebenskalender.pdf.

Hier mal die Ausgabe auf System.out:

„PDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender“ weiterlesen

Warum läuft die OSGI-Konsole in neueren Versionen nicht mehr so wie früher?

In älteren OSGI Versionen konnte die Konsole einfach über einen Aufruf:

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

Welche Möglichkeiten der Java Objekt-Erzeugung gibt es?

Meistens erzeugt man Objekte in Java mit new. Es gibt aber noch ein paar andere Möglichkeiten.

Urlaub

Wir haben diese Farbe Testklasse:

und haben diese Möglichkeiten Objekte zu erzeugen. „Welche Möglichkeiten der Java Objekt-Erzeugung gibt es?“ weiterlesen

Besser als Fussball: MQTT Java Client mit Paho

Fussball? Wie kann man per Java einen MQTT Client mit Paho schreiben, der z.B. die Anzahl Flugzeuge in Hannover anzeigt? Und das innerhalb der ersten Halbzeit, da nur 2 Klassen benötigt werden.

Mein Raspberry Pi sendet an den öffentlichen Testserver test.mosquitto.org unter den Topic /Anzahl/Flugzeuge/Hannover alle 5 Minuten die aktuelle Anzahl, so das dieses Beispiel jeder nachvollziehen kann.

Hier die Architektur:

mqtt

Wir brauchen zuerst ein Eclipse Maven Projekt mit Java 1.8 mit dieser pom.xml und einen Eintrag des Paho Repo, da es in Maven Central nicht vorhanden ist: „Besser als Fussball: MQTT Java Client mit Paho“ weiterlesen

Wie kann ein Timer in Java mit Quartz erstellt werden?

Manchmal möchte man Ereignisse mit Java zeitgesteuert oder wiederholt ausführen. Das geht auch mit Java Mitteln. Die bekannte java.util.Timer Klasse kann schon was. Der Open Source Framework Quartz hat ua. aber diese Vorteile:

  • persistence mechanismen
  • flexible Zeitplanung
  • Thread-Pool
  • Managment Schemen
  • flexibel
  • fehlertolerant, auch nach Systemstart

Quartz ist ein kleiner Framework der nur quartz-x.y.z.jar im Classpath benögigt (inkl. log sl4j-api.jar, und c3p0.jar). Er kann Standalone oder im Server als J2EE Anwendung verwendet werden. Die wichtigsten drei Klassen sind Task/Job, Trigger und der Listener.

Sie spielen so zusammen:

quartz-uebersicht

Wie kann ein Timer in Java mit Quartz erstellt werden? „Wie kann ein Timer in Java mit Quartz erstellt werden?“ weiterlesen