0

Java class version can be obtained from a class binary using javap

javap -verbose Test | grep 'minor\|major'
  minor version: 0
  major version: 55

Is it possible to know in advance which class version a JDK will produce? java -version does not show it

java -version
openjdk version "11.0.17" 2022-10-18

Usually related to java.lang.UnsupportedClassVersionError.

LMC
  • 10,453
  • 2
  • 27
  • 52
  • 2
    You can also just refer to [official documentation](https://docs.oracle.com/javase/specs/jvms/se19/html/jvms-4.html#jvms-4.1-200-B.2) or [Wikipedia](https://en.wikipedia.org/wiki/Java_class_file#General_layout) – k314159 Jan 26 '23 at 15:04
  • Yes, thanks. I found it interesting to know it from command line for scripting/troubleshooting purposes. – LMC Jan 26 '23 at 15:07

1 Answers1

6

Java class major/minor version produced by a JDK can be obtained from java command as follows

java -XshowSettings:properties -version 2>&1 | grep -E -e 'java\.(class\.)?version '

Result:

java.class.version = 55.0
java.version = 11.0.17
DJCrashdummy
  • 175
  • 4
  • 14
LMC
  • 10,453
  • 2
  • 27
  • 52