找到可以编译代码的最古老的Java版本

时间:2016-03-25 21:24:49

标签: java compilation

甚至可以编写测试来检查文件是否编译特定版本的Java?

让我说我的机器中有jdk 1.8,1.7,1.6 .....并且需要找到可以编译代码的最旧的java版本。

我能想到的唯一方法是使用Runtime api。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试使用javac版本1.8和各种-source选项。

例如javac -source 1.6 ...应该阻止任何1.7或1.8特定语言的详细信息(但它不会阻止使用更新的库)。

要验证一组源代码仅使用1.6 API来使用1.6源代码样式,您需要设置maven构建并使用“animal sniffer”插件。它将检查所有系统库调用是否与从库存1.6 JVM中获取的指纹匹配(如果您配置它)。

还有其他技术,你已经暗示只为每个重新下载一个JDK,这有效,但最终找到所有必需的JDK有点乱。