我如何知道使用什么版本的 Java 编译器来构建 jar?我有一个 jar 文件,它可以在三个 JDK 中的任何一个中构建。我们需要确切地知道是哪一个,这样我们才能证明兼容性。编译器版本是否嵌入在类文件或 jar 中的某处?
您无法从 JAR 文件本身中分辨出来,这是必然的。
下载一个十六进制编辑器并打开 JAR 中的一个类文件并查看字节偏移量 4 到 7。版本信息是内置的。
http://en.wikipedia.org/wiki/Java_class_file
注意:正如下面评论中提到的,
这些字节告诉您该类已编译为哪个版本,而不是编译它的版本。