public class ClassFileVersion extends Object implements Comparable<ClassFileVersion>, Serializable
Modifier and Type | Class and Description |
---|---|
protected static interface |
ClassFileVersion.VersionLocator
A locator for the executing VM's Java version.
|
Modifier and Type | Field and Description |
---|---|
protected static int |
BASE_VERSION
Returns the minimal version number that is legal.
|
static ClassFileVersion |
JAVA_V1
The class file version of Java 1.
|
static ClassFileVersion |
JAVA_V10
The class file version of Java 10.
|
static ClassFileVersion |
JAVA_V11
The class file version of Java 11.
|
static ClassFileVersion |
JAVA_V12
The class file version of Java 12.
|
static ClassFileVersion |
JAVA_V13
The class file version of Java 13.
|
static ClassFileVersion |
JAVA_V14
The class file version of Java 14.
|
static ClassFileVersion |
JAVA_V15
The class file version of Java 15.
|
static ClassFileVersion |
JAVA_V16
The class file version of Java 16.
|
static ClassFileVersion |
JAVA_V17
The class file version of Java 17.
|
static ClassFileVersion |
JAVA_V18
The class file version of Java 18.
|
static ClassFileVersion |
JAVA_V19
The class file version of Java 19.
|
static ClassFileVersion |
JAVA_V2
The class file version of Java 2.
|
static ClassFileVersion |
JAVA_V20
The class file version of Java 20.
|
static ClassFileVersion |
JAVA_V21
The class file version of Java 21.
|
static ClassFileVersion |
JAVA_V22
The class file version of Java 22.
|
static ClassFileVersion |
JAVA_V23
The class file version of Java 23.
|
static ClassFileVersion |
JAVA_V24
The class file version of Java 24.
|
static ClassFileVersion |
JAVA_V3
The class file version of Java 3.
|
static ClassFileVersion |
JAVA_V4
The class file version of Java 4.
|
static ClassFileVersion |
JAVA_V5
The class file version of Java 5.
|
static ClassFileVersion |
JAVA_V6
The class file version of Java 6.
|
static ClassFileVersion |
JAVA_V7
The class file version of Java 7.
|
static ClassFileVersion |
JAVA_V8
The class file version of Java 8.
|
static ClassFileVersion |
JAVA_V9
The class file version of Java 9.
|
Modifier | Constructor and Description |
---|---|
protected |
ClassFileVersion(int versionNumber)
Creates a wrapper for a given minor-major release of the Java class file format.
|
Modifier and Type | Method and Description |
---|---|
ClassFileVersion |
asPreviewVersion()
Returns this class file version indicating a class using preview features.
|
int |
compareTo(ClassFileVersion other) |
boolean |
equals(Object other) |
int |
getJavaVersion()
Returns the Java runtime version number of this class file version.
|
short |
getMajorVersion()
Returns the major version this instance represents.
|
int |
getMinorMajorVersion()
Returns the minor-major release number of this class file version.
|
short |
getMinorVersion()
Returns the minor version this instance represents.
|
int |
hashCode() |
boolean |
isAtLeast(ClassFileVersion classFileVersion)
Checks if this class file version is at least as new as the provided version.
|
boolean |
isAtMost(ClassFileVersion classFileVersion)
Checks if this class file version is at most as new as the provided version.
|
boolean |
isGreaterThan(ClassFileVersion classFileVersion)
Checks if this class file version is newer than the provided version.
|
boolean |
isLessThan(ClassFileVersion classFileVersion)
Checks if this class file version is older than the provided version.
|
boolean |
isPreviewVersion()
Returns
true if this class file version indicates the use of preview features. |
static ClassFileVersion |
latest()
Returns the latest officially supported Java version when experimental support is not enabled.
|
static ClassFileVersion |
of(Class<?> type)
Extracts a class' class version.
|
static ClassFileVersion |
of(Class<?> type,
ClassFileLocator classFileLocator)
Extracts a class' class version.
|
static ClassFileVersion |
of(TypeDescription typeDescription,
ClassFileLocator classFileLocator)
Extracts a class' class version.
|
static ClassFileVersion |
ofClassFile(byte[] binaryRepresentation)
Extracts a class' class version from a class file.
|
static ClassFileVersion |
ofJavaVersion(int javaVersion)
Creates a class file version for a given major release of Java.
|
static ClassFileVersion |
ofJavaVersionString(String javaVersionString)
Returns the Java class file by its representation by a version string in accordance to the formats known to javac.
|
static ClassFileVersion |
ofMinorMajor(int versionNumber)
Creates a wrapper for a given minor-major release of the Java class file format.
|
static ClassFileVersion |
ofThisVm()
Finds the highest class file version that is compatible to the current JVM version.
|
static ClassFileVersion |
ofThisVm(ClassFileVersion fallback)
Finds the highest class file version that is compatible to the current JVM version.
|
String |
toString() |
protected static final int BASE_VERSION
public static final ClassFileVersion JAVA_V1
public static final ClassFileVersion JAVA_V2
public static final ClassFileVersion JAVA_V3
public static final ClassFileVersion JAVA_V4
public static final ClassFileVersion JAVA_V5
public static final ClassFileVersion JAVA_V6
public static final ClassFileVersion JAVA_V7
public static final ClassFileVersion JAVA_V8
public static final ClassFileVersion JAVA_V9
public static final ClassFileVersion JAVA_V10
public static final ClassFileVersion JAVA_V11
public static final ClassFileVersion JAVA_V12
public static final ClassFileVersion JAVA_V13
public static final ClassFileVersion JAVA_V14
public static final ClassFileVersion JAVA_V15
public static final ClassFileVersion JAVA_V16
public static final ClassFileVersion JAVA_V17
public static final ClassFileVersion JAVA_V18
public static final ClassFileVersion JAVA_V19
public static final ClassFileVersion JAVA_V20
public static final ClassFileVersion JAVA_V21
public static final ClassFileVersion JAVA_V22
public static final ClassFileVersion JAVA_V23
public static final ClassFileVersion JAVA_V24
protected ClassFileVersion(int versionNumber)
versionNumber
- The minor-major release number.public static ClassFileVersion ofMinorMajor(int versionNumber)
versionNumber
- The minor-major release number.public static ClassFileVersion ofJavaVersionString(String javaVersionString)
javaVersionString
- The Java version string.public static ClassFileVersion ofJavaVersion(int javaVersion)
javaVersion
- The Java version.public static ClassFileVersion latest()
public static ClassFileVersion ofThisVm()
java.version
property which is provided by System.getProperty(String)
. If the system
property is not available, an IllegalStateException
is thrown.public static ClassFileVersion ofThisVm(ClassFileVersion fallback)
java.version
property which is provided by System.getProperty(String)
. If the system
property is not available, the fallback
version is returned.fallback
- The version to fall back to if locating a class file version is not possible.public static ClassFileVersion of(Class<?> type) throws IOException
ClassLoader
of the class.type
- The type for which to locate a class file version.IOException
- If an error occurs while reading the class file.public static ClassFileVersion of(Class<?> type, ClassFileLocator classFileLocator) throws IOException
type
- The type for which to locate a class file version.classFileLocator
- The class file locator to query for a class file.IOException
- If an error occurs while reading the class file.public static ClassFileVersion of(TypeDescription typeDescription, ClassFileLocator classFileLocator) throws IOException
typeDescription
- The type for which to locate a class file version.classFileLocator
- The class file locator to query for a class file.IOException
- If an error occurs while reading the class file.public static ClassFileVersion ofClassFile(byte[] binaryRepresentation)
binaryRepresentation
- The class file's binary representation.public int getMinorMajorVersion()
public short getMajorVersion()
public short getMinorVersion()
public int getJavaVersion()
public boolean isAtLeast(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is at least of the given version.public boolean isGreaterThan(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is newer than the provided version.public boolean isAtMost(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is as most as new as the provided version.public boolean isLessThan(ClassFileVersion classFileVersion)
classFileVersion
- The version to check against.true
if this version is older than the provided version.public ClassFileVersion asPreviewVersion()
public boolean isPreviewVersion()
true
if this class file version indicates the use of preview features.true
if this class file version indicates the use of preview features.public int compareTo(ClassFileVersion other)
compareTo
in interface Comparable<ClassFileVersion>
public boolean equals(@MaybeNull Object other)
Copyright © 2014–2025. All rights reserved.