如何知道构建jar使用的是哪个版本的Java编译器?我有一个jar文件,它可以构建在三个JDK中的任何一个中。我们需要确切地知道是哪一个,这样我们才能证明兼容性。编译器版本是否嵌入在类文件或jar中的某个位置?
发布于 2014-11-21 02:33:35
以下是Java查找此信息的方法。
Windows:javap -v <class> | findstr major
Unix:javap -v <class> | grep major
例如:
> javap -v Application | findstr major major version: 51
发布于 2016-08-09 02:30:34
不需要解压JAR (如果其中一个类名已知或使用7zip查找),因此在Windows上,以下内容就足够了:
javap -cp log4j-core-2.5.jar -verbose org.apache.logging.log4j.core.Logger | findstr major
发布于 2010-07-23 05:30:35
Java编译器(javac
)不构建jars,它将Java文件转换为类文件。Jar工具(jar
)创建实际的Jar。如果未指定自定义清单,则默认清单将指定使用哪个版本的JDK来创建jar。
https://stackoverflow.com/questions/3313532
复制相似问题