2009-08-08 2 views

ответ

2

Версия VM - это версия программного обеспечения VM, тогда как java.version - это версия Java-языка (то есть спецификация). Сравнение аналогично версии спецификации C++ (функции и т. Д.) По сравнению с версией компилятора C++ (номер сборки и т. Д.). Имеет ли это смысл? Если нет, я могу потрудиться, прояснив это больше.

С уважением, Крисом

1

java.version является вариант реализации языка. java.vm.version - версия двигателя под ним. У этого движка могут быть значительные улучшения в производительности между тем, что выглядит как небольшие выпуски без изменения функциональности, поэтому он версируется отдельно.

Более подробно, вот как ВС и Oracle описывают эти варианты:

Sun говорит:

  • java.version - Java Runtime Environment версии
  • java.vm. версия - версия виртуальной машины Java

Oracle, JRockit документы являются немного понятнее:

  • java.version - Это свойство определяет версию продукта J2SE JDK/JRE; то есть, какую версию JDK или JSE вы используете. Номер версии также отображается в первой строке вывода и является общим для Sun JRE и Oracle JRockit JRE. Информация, полученная с помощью этого свойства появляется в этом формате:

    <jdk_major_version>.<jdk_minor_version>.<jdk_micro_version>[_<jdk_update_version>][-<milestone>]
    значение отображается жирным шрифтом в выходном примере версии ниже:
     
    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)
    Для получения дополнительной информации о java.version, пожалуйста, обратитесь к: http://java.sun.com/j2se/versioning_naming.html

  • java.vm.version - это свойство определяет JVM осуществление версия. Идентификатор версии отображается в третьей строке вывода java -version. Этот идентификатор является основным методом для разграничения версий JRockit JVM. Ниже приведены примеры из нескольких различных выпусков JRockit JVM

    • JRockit JVM R24.5.0: ари-49095-20050826-1856-беспроигрышная IA32
    • JRockit JVM 5.0 SP2: дра-45238-20050523-2021 -win-ia32
    • JRockit JVM R26.4.0: R26.4.0-63-63688-1.5.0_06-20060626-2259-беспроигрышная ia32
    • JRockit JVM R27.3.1: R27.3.1-1-85830-1.6 .0_01-20070716-1248-окон-ia32
0

Я нашел a forum entry on sun's site, в котором упоминается свойство java.vm.version, которое прикручивается где-то в Java6. Java's docs не упоминает свойство java.vm.version. IBM mentions it, так что, возможно, это специфично для JVM, который вы используете, но не является частью спецификации.