Java 是否存在从JVM版本到JRE/JDK版本的映射?

Java 是否存在从JVM版本到JRE/JDK版本的映射?,java,maven,Java,Maven,我试图决定是否需要在清单文件中显式设置用于构建的JDK版本 我有一个默认清单文件,它告诉我: 创建人:19.1-b02(太阳微系统公司) 这就是JVM版本。但这足够了吗?是否有一个映射可以告诉我构建使用了什么java版本 我正在使用JDK 6 update 24构建,我正在使用Maven,ANT插件正在生成该值 编辑 如果我看一下建造的罐子,我有: Archiver-Version: Plexus Archiver Created-By: Apache Maven Build-Jdk: 1.6.

我试图决定是否需要在清单文件中显式设置用于构建的JDK版本

我有一个默认清单文件,它告诉我:

创建人:19.1-b02(太阳微系统公司)

这就是JVM版本。但这足够了吗?是否有一个映射可以告诉我构建使用了什么java版本

我正在使用JDK 6 update 24构建,我正在使用Maven,ANT插件正在生成该值

编辑 如果我看一下建造的罐子,我有:

Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Build-Jdk: 1.6.0_24

但当我为了混淆目的重新打包所有东西时,我最终在Maven中运行ANT插件,生成“19.1-b02”。

当我使用的
jar
命令(例如JDK1.7.0_40)创建jar文件时,它包含一个清单条目,上面写着
由:1.7.0_40(Oracle公司)
。但是,我不知道为什么要去处理这个属性,它没有真正的意义。我的例子:也许我已经工作了很多C++,但是,我想知道用什么编译器来构建JAR文件。对于旧的遗留客户端,我们需要混合和匹配jar文件,因此我们需要使用相同的编译器。在本例中是jdk6u24,如果我能从现有的jdk版本中获得jdk版本,我不想麻烦深入研究这个问题。没有人保证打包jar的工具与编译器运行的jdk/jre版本相同。而且编译器可能已经使用
-target
选项运行,以便为较旧的jre版本生成类。罐子可能会被另一个工具重新包装。等等。您可以检查类文件的版本,以找出它们是根据哪个目标编译的。但我不确定这是否真的有助于决定某些遗留黑客是否有用。开发人员可能已经创建了一个编译后与旧版本兼容的软件,但仍然知道如何正确地为新版本执行操作……我邪恶的总体计划只是将所有版本进行GIT分支,并且在几年内,如果需要,我们可以用同一个编译器重建软件。然后我将在清单中转储jdk版本。