2012-07-03 68 views
4

我使用Java 6创建了一个jar。现在我创建一个发布文档并记录依赖关系。我如何才能找到能够成功运行Jar的最早版本的Java,以及能够成功将源代码编译成Jar的最早版本的Java?JAR的依赖关系

回答

1

我只知道曼努埃尔的解决方案:试用一下。但是,有两件事情需要考虑。

  1. 哪个版本的代码语言兼容?
  2. 它将执行哪个JRE?

,第一你可以用你当前的JDK做,只是遍历你传递给你的javac编译-source-target参数。但是,这并不会阻止您使用您正在使用的JDK中的类和方法。如果你这样做,如果你正在使用当前不存在的类或方法,代码将不会执行较低的JRE。

savest的方式是安装所有不同的JDK,并尝试使用每个编译器编译代码。

+1

不幸的是,据我所知,我想这不会阻止你使用的是不属于某JDK分发的一部分API功能。例如,假设你正在使用JDK 1.7编译器进行编译,你可以使用'-source 1.5' -target 1.5'',编译器仍然不会抱怨你正在使用已添加的方法'String.isEmpty()'在JDK 1.6 –

+0

@EdwinDalorzo正确!我只是想补充一点。 –

+0

在这种情况下,我不确定这种方法是否有很大帮助,因为问题是关于检查依赖关系,而源和目标命令行选项仅用于检查语言特性的兼容性。 –

0

如果您使用java 6创建jar并且未指定不同版本的输出字节码,则生成的类文件将需要Java 6或更高版本。如果您正在手动编译,如果您使用eclipse或其他IDE,大多数设置都可以控制项目中生成的字节码版本,您可以尝试查看可以使用源代码与-target命令行选项生成的字节码版本选项或类似的地方。

有关确定类文件的字节码版本相关的职位:What version of javac built my jar?