Mittwoch, 26. März 2014

Welche Java Version läuft auf meinem Computer?

Bei dieser Frage ist nicht gemeint, wie ich die Version des aktuell installierten Java abfrage (java -version), sondern was ist dir höchste Version die auf meinem Betriebsystem/Linux läuft? Ich stand vor folgendem Problem, das sich nicht durch ein Betriebssystemupgrade lösen lies:
java -version
Error: dl failure on line 863
Error: failed /var/opt/lhotse-xlt/java/jre/lib/amd64/server/libjvm.so, because /lib64/tls/libc.so.6: version `GLIBC_2.4' not found (required by /var/opt/lhotse-xlt/java/jre/lib/amd64/server/libjvm.so)

Die Version der glibc findet man wie folgt in der BASH heraus:
/lib/libc.so.6
GNU C Library stable release version 2.3.5 (20050720), by Roland McGrath et al.

Damit ergab sich die Frage, welche Java Version läuft mit der glibc < 2.4? Über das Releasedatum des Linux-Kernels bzw. der Linux-Distribution lässt sich die Suche auf eine Java Version reduzieren: Java 6.
uname -a
Linux blade7 2.6.5-7.324-smp #1 SMP Mon Sep 20 15:38:01 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

Aber die neueren Java 6 Versionen brauch schon die glibc 2.4. Aber über die Oracle Seite (http://www.oracle.com/technetwork/java/javase/system-configurations-135212.html) findet man die korrekte Java Version: Java 6u18.

Montag, 10. März 2014

Anzahl der Java Klassen in einem Projekt zählen

Man sehr einfach mit der BASH die Anzahl der Klassen in einem Projekt zählen. Dazu baut man zuerst ein JAR Datei, z.b. mvn package.  Dann zählt man die die class Einträge in der JAR Datei: unzip -l target/scale-performance-check-1.22.jar | grep .class | wc -l
Es geht auch ein bisschen einfacher: find src/ -name "*.java" | wc -l
Hier werden aber nur die Java Dateien gezählt. Abweichungen entstehen z.B. durch innere Klassen.

Wenn man die LOC zählen möchte kann man dies mit: find src/ -name '*.java' | xargs wc -l
Hierbei werden leere Dateien und Kommentare mitgezählt.