Interface ClassFileVersion

All Superinterfaces:
ClassElement, ClassFileElement

public sealed interface ClassFileVersion extends ClassElement
Models the minor and major version numbers of a class file (JVMS 4.1). The class file version appears exactly once in each class, and is set to an unspecified default value if not explicitly provided.

The major versions of class file format begins at 45 for Java Platform version 1.0.2, and is continuous up to ClassFile.latestMajorVersion(). In general, each major version defines a new supported class file format, modeled by ClassFileFormatVersion, and supports all previous formats.

For major versions up to 55 for Java SE Platform 11, the minor version of any value is supported. For major versions 56 for Java SE Platform version 12 and above, the minor version must be 0 or 65535. The minor version 0 is always supported, and represents the format modeled by ClassFileFormatVersion. The minor version 65535 indicates the class file uses preview features of the Java SE Platform release represented by the major version. A Java Virtual Machine can only load such a class file if it has the same Java SE Platform version and the JVM has preview features enabled.

See Java Virtual Machine Specification:
4.1 The ClassFile Structure
Since:
24
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Returns the major version.
    int
    Returns the minor version.
    of(int majorVersion, int minorVersion)
    Returns a ClassFileVersion element.
  • Method Details

    • majorVersion

      int majorVersion()
      Returns the major version. It is in the range of unsigned short, [0, 65535].
      API Note:
      Constants in ClassFile named Java_#_VERSION, where # is a release number, such as ClassFile.JAVA_21_VERSION, describe the class major versions of the Java Platform SE.
      Returns:
      the major version
    • minorVersion

      int minorVersion()
      Returns the minor version. It is in the range of unsigned short, [0, 65535].
      Returns:
      the minor version
    • of

      static ClassFileVersion of(int majorVersion, int minorVersion)
      Returns a ClassFileVersion element.
      Parameters:
      majorVersion - the major version
      minorVersion - the minor version
      Returns:
      a ClassFileVersion element