© Excellent backgrounds/Shutterstock.com
Java Magazin
Teil 3: Neue und alte JDK-Tools

Neuzugänge und Abgänge

Wir wollen Ihnen in dieser Artikelreihe einen Überblick über die Neuerungen in Java 9 verschaffen und einige Features von Java 9 kurz erläutern. Dabei haben wir diejenigen Themen ausgewählt, von denen wir denken, dass sie für Java-Entwickler am interessantesten sind. Und natürlich werfen wir einen Blick auf die größte Neuerung: das Modulsystem.

Angelika Langer, Klaus Kreft


Java 9 – ÜberblickTeil 1: Ergänzungen der Sprache und der existierenden APIsTeil 2: JVM Internals Teil 3: Neue und alte JDK-Tools Teil 4: Project Jigsaw aka Java Module System Teil 5: JDK-interne Packages wie sun.misc.* und ihr Ersatz Teil 6: Concurrency Updates

Ergänzungen zu jcmd

Seit Java 8 gibt es das Diagnosetool jcmd, mit dem man Informationen über eine laufende JVM bekommen kann. Es befindet sich wie alle Diagnosewerkzeuge im bin Directory des JDK. Viele der Diagnosekommandos, die es schon früher im JDK gab, sind nun unter jcmd zusammengefasst. Zum Beispiel kann man für das Auflisten aller JVMs seit Java 8 das Kommando jcmd anstelle von jps verwenden. Oder man kann seit Java 8 einen Heap Dump mit jcmd GC.heap_dump anstelle von jmap -dump:live,format=b,file= ziehen, wie man es traditionell gemacht hat. Mit Java 9 sind weitere Optionen für jcmd dazu gekommen [1], unter anderem VM.log für die Steuerung des JVM Loggings. Ein anderes Beispiel ist das Abfragen von Informationen über den Heap (mit GC.heap_info) oder die Finalizer Queue (mit GC.finalizer_info). Man kann z. B. in Java 9 jcmd GC.finalizerinfo anstelle von jmap -finalizerinfo sagen, wie man es noch in Java 8 gemacht hätte. Neu in Java 9 sind auch Optionen für den JIT-Compiler (Compiler.directives_add oder Compiler.queue), die Möglichkeit, JVM Flags zu setzen (mit VM.set_flag) und einiges mehr. Die komplette Liste aller Optionen für jcmd bekommt man über jcmd help.

Neue Tools: jdeprscan und jshell

Da in Zukunft solche Features wegfallen sollen, die heute bereits als deprecated gekennzeichnet sind, gibt es ein neues Tool jdeprscan, mit dem nach der Verwendung von deprecated-API-Elementen gesucht werden kann. Das jshell-Werkzeug [2] ist ein interaktives Comand-Line-Tool, mit dem man Java-Ausdrücke und -Anweisungen evaluieren kann. Es hat einen Codemodus, in dem man Java-Code eintippen und sofort ausführen kann. Zusätzlich gibt es einen Kommandomodus, in dem man sich z. B. alle Variablen und Methoden anschauen kann, die man explizit oder implizit angelegt hat. Man kann den Quellcode auch abspeichern und aufheben oder vorhandenen Quellcode einlesen. Es hat Autovervollständigung und vieles mehr. Zum Lernen der Sprache oder auch zum Ausprobieren von neuen Features ist das jshell-Werkzeug recht nützlich. Es gibt dazu ein Konferenzvideo von Robert Field, der das jshell-­Werkzeug für Java 9 implementiert hat [3].

Verschwundene Tools: jvisualvm, hprof und jhat

D...

Java Magazin
Teil 3: Neue und alte JDK-Tools

Neuzugänge und Abgänge

Wir wollen Ihnen in dieser Artikelreihe einen Überblick über die Neuerungen in Java 9 verschaffen und einige Features von Java 9 kurz erläutern. Dabei haben wir diejenigen Themen ausgewählt, von denen wir denken, dass sie für Java-Entwickler am interessantesten sind. Und natürlich werfen wir einen Blick auf die größte Neuerung: das Modulsystem.

Angelika Langer, Klaus Kreft


Java 9 – ÜberblickTeil 1: Ergänzungen der Sprache und der existierenden APIsTeil 2: JVM Internals Teil 3: Neue und alte JDK-Tools Teil 4: Project Jigsaw aka Java Module System Teil 5: JDK-interne Packages wie sun.misc.* und ihr Ersatz Teil 6: Concurrency Updates

Ergänzungen zu jcmd

Seit Java 8 gibt es das Diagnosetool jcmd, mit dem man Informationen über eine laufende JVM bekommen kann. Es befindet sich wie alle Diagnosewerkzeuge im bin Directory des JDK. Viele der Diagnosekommandos, die es schon früher im JDK gab, sind nun unter jcmd zusammengefasst. Zum Beispiel kann man für das Auflisten aller JVMs seit Java 8 das Kommando jcmd anstelle von jps verwenden. Oder man kann seit Java 8 einen Heap Dump mit jcmd GC.heap_dump anstelle von jmap -dump:live,format=b,file= ziehen, wie man es traditionell gemacht hat. Mit Java 9 sind weitere Optionen für jcmd dazu gekommen [1], unter anderem VM.log für die Steuerung des JVM Loggings. Ein anderes Beispiel ist das Abfragen von Informationen über den Heap (mit GC.heap_info) oder die Finalizer Queue (mit GC.finalizer_info). Man kann z. B. in Java 9 jcmd GC.finalizerinfo anstelle von jmap -finalizerinfo sagen, wie man es noch in Java 8 gemacht hätte. Neu in Java 9 sind auch Optionen für den JIT-Compiler (Compiler.directives_add oder Compiler.queue), die Möglichkeit, JVM Flags zu setzen (mit VM.set_flag) und einiges mehr. Die komplette Liste aller Optionen für jcmd bekommt man über jcmd help.

Neue Tools: jdeprscan und jshell

Da in Zukunft solche Features wegfallen sollen, die heute bereits als deprecated gekennzeichnet sind, gibt es ein neues Tool jdeprscan, mit dem nach der Verwendung von deprecated-API-Elementen gesucht werden kann. Das jshell-Werkzeug [2] ist ein interaktives Comand-Line-Tool, mit dem man Java-Ausdrücke und -Anweisungen evaluieren kann. Es hat einen Codemodus, in dem man Java-Code eintippen und sofort ausführen kann. Zusätzlich gibt es einen Kommandomodus, in dem man sich z. B. alle Variablen und Methoden anschauen kann, die man explizit oder implizit angelegt hat. Man kann den Quellcode auch abspeichern und aufheben oder vorhandenen Quellcode einlesen. Es hat Autovervollständigung und vieles mehr. Zum Lernen der Sprache oder auch zum Ausprobieren von neuen Features ist das jshell-Werkzeug recht nützlich. Es gibt dazu ein Konferenzvideo von Robert Field, der das jshell-­Werkzeug für Java 9 implementiert hat [3].

Verschwundene Tools: jvisualvm, hprof und jhat

D...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang