Montag, 21. Mai 2012

Java -XX: VM-Parameter

Eine vollständige Liste der ganzen Java -XX VM-Parameter für Java-5 bis 7 habe ich mal zusammengebastelt und online gestellt. Die meisten braucht man selbst als Entwickler vermutlich niemals, aber auf jeden Fall interessant, was so alles geht. Enthalten sind alle Parameter, auf die die Java-VM nicht mit einem "Unrecognized" reagiert.

Freitag, 18. Mai 2012

Oracle-Java auf Ubuntu 12 / Mint 13

Mit dem neuen Ubuntu ist die Oracle-Java-VM nun endgültig aus den Repositories verschwunden. Für die üblichen Fälle ist das Open-JDK auch völlig in Ordnung, zumal mit Java7 das Open-JDK zur Referenzimplementierung erhoben wurde. Allerdings habe ich häufiger die Erfahrung gemacht, dass sich doch hier- und da einige Kleinigkeiten unterscheiden, was spätestens bei der Anwendungsentwicklung so interessant sein sollte, dass eine Oracle-Java-VM ihren platz auf der Platte finden sollte. Wie das am besten geht, hier nun in Kürze.

Als erstes das passende JDK6 oder JDK7 herunterladen. Für das JDK6 bekommt man eine bin-Datei, die man per chmod +x jdk-6u32-linux-x64.bin ausführbar macht. Das anschließende ausführen entpackt das komplette JDK. Für das JDK7 liegt keine bin- sondern eine tar.gz-Datei vor. Einfach die tar.gz-Datei entpacken und weiter gehts.

Alles weitere ist nun, bis auf das JDK-Verzeichnis identisch. Das entpackt Verzeichnis wird nun nach /usr/lib/jvm/ kopiert sudo mv jdk1.6.0_32 /usr/lib/jvm/. Anschließend muss das JDK noch bei den update-alternatives angemeldet werden.

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_32/bin/javac 1 

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_32/bin/java 1 

sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_32/bin/javaws 1

Wenn dies geschehen ist, nur noch die neu eingerichtete JDK als Default auswählen.

sudo update-alternatives --config javac

sudo update-alternatives --config java

sudo update-alternatives --config javaws

zuletzt noch mit java -version Prüfen, ob alles geklappt hat. Fertig.

Donnerstag, 10. Mai 2012

Java 7 und die binären Crashdumps

Die Hotspot-Java-VM kann seit Version 1.7 auch Windows Minidumps (.mdmp-Dateien) erzeugen, wenn die VM mal crashen sollte. Die Dumps werden aber nur geschrieben, wenn die VM auf einer Windows-Server-Version läuft. Möchte man auch auf der Client-Version einen Dump haben, ist das VM-Parameter -XX:+CreateMinidumpOnCrash beim Start zu übergeben. Will man umgekehrt auf der Server-Version keine Dumps haben, sieht das Parameter so aus: -XX:-CreateMinidumpOnCrash.

Die Dump-Files kann man mit dem Programm Windbg auswerten, das bei den Debugging Tools for Windows mit dabei ist. Am besten mal bei windbg.org vorbeischauen.

Mehr VM-Parameter findet man auch auf Sta's blog. Allerdings fehlen alle neueren 1.7er Parameter. Wer eine Liste kennt darf mir gern einen Hinweis in den Kommentaren hinterlassen.