2009-08-08 7 views
2

Was ist der Unterschied zwischen "java.version" und "java.vm.version"?Java-Systemeigenschaften

Wenn ich das letztere verwende, bekomme ich etwas wie "11.3-b02." Was bedeutet das?

Antwort

2

Die VM-Version ist die Version der VM-Software, während die java.version die Version der Java-Sprache (d. H. Die Spezifikation) ist. Der Vergleich entspricht der Version der C++ - Spezifikation (Features usw.) im Vergleich zur Version des C++ - Compilers (Build-Nummer usw.). Ist das sinnvoll? Wenn nicht, kann ich einen Schlag darauf nehmen, es mehr zu erklären.

Grüßen, chris

1

java.version ist die Version der Sprachimplementierung. java.vm.version ist die Version des Motors darunter. Diese Engine kann erhebliche Leistungsverbesserungen zwischen so etwas wie Minor Releases ohne Änderung der Funktionalität aufweisen. Daher wird sie separat versioniert.

Für weitere Details hier sind, wie Sun und Oracle beschreiben diese Optionen:

Sun sagt:

  • java.version - Java Runtime Environment Version
  • java.vm. Version - Java Virtual Machine Implementierungsversion

JRockit docs Oracle sind ein wenig klarer:

  • java.version - Diese Eigenschaft gibt die J2SE JDK/JRE Produktversion identifiziert; das heißt, welche Version des JDK oder JSE Sie ausführen. Die Versionsnummer wird auch in der ersten Zeile der Ausgabe angezeigt und ist für Sun JRE und Oracle JRockit JRE identisch. Die Informationen, die durch diese Eigenschaft erscheint in diesem Format:

    <jdk_major_version>.<jdk_minor_version>.<jdk_micro_version>[_<jdk_update_version>][-<milestone>]
    Der fettgedruckte Wert erscheint im Beispiel Version Ausgabe unter:
     
    java version "1.5.0_03" 
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07) 
    BEA JRockit(R) (build dra-45238-20050523-2021-win-ia32, R25.2.0-28)
    Weitere Informationen zu java.version finden Sie auf: http://java.sun.com/j2se/versioning_naming.html

  • java.vm.version - Diese Eigenschaft gibt die JVM identifiziert Implementierungsversion. Die Versions-ID erscheint in der dritten Zeile von java -version output. Diese ID ist die wichtigste Methode, um zwischen JRockit JVM-Versionen zu unterscheiden. Im Folgenden sind Beispiele von ein paar verschiedene Versionen der JRockit JVM

    • JRockit JVM R24.5.0: ari-49095-20050826-1856-win-ia32
    • JRockit JVM 5.0 SP2: DRA-45238-20050523-2021 -win-ia32
    • JRockit JVM R26.4.0: R26.4.0-63-63688-1.5.0_06-20060626-2259-win-ia32
    • JRockit JVM R27.3.1: R27.3.1-1-85830-1.6 .0_01-20070716-1248-windows-ia32
0

Ich habe die a forum entry on sun's site gefunden, die erwähnt, dass die Eigenschaft java.vm.version irgendwann in Java6 vermasselt wird. Java's docs Erwähnen Sie nicht die Eigenschaft java.vm.version. IBM mentions it, also vielleicht ist es spezifisch für die JVM, die Sie verwenden, aber nicht Teil der Spezifikation.