从 javac 或 JRE 获取没有编译类的 java 类版本

2024-01-03

Java 类版本可以使用以下命令从类二进制文件中获取javap

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

是否可以提前知道 JDK 将生成哪个类版本?java -version不显示它

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

通常与java.lang.UnsupportedClassVersionError 错误 https://stackoverflow.com/questions/10382929/how-to-fix-java-lang-unsupportedclassversionerror-unsupported-major-minor-versi.


JDK 生成的 Java 类主要/次要版本可以从以下位置获取java, javac or javap命令如下

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

# testing all 3 commands
for cmd in "java " "javac -J" "javap -J"; do echo "${cmd% *}"; ${cmd}-XshowSettings:properties -version 2>&1  | grep -E -e 'java\.(class\.)?version ' ; done

Result:

java 
    java.class.version = 61.0
    java.version = 17.0.8.1
javac
    java.class.version = 55.0
    java.version = 11.0.20.1
javap
    java.class.version = 55.0
    java.version = 11.0.20.1

Note: 就像我的情况一样 :p ,Linux 错误配置可能会给出与以下不同的结果java and javac表明这两个命令属于不同的版本。通常可以使用以下方法修复alternatives命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 javac 或 JRE 获取没有编译类的 java 类版本 的相关文章

随机推荐