Eclipse 检查项目是否使用Java7中引入的代码

Eclipse 检查项目是否使用Java7中引入的代码,eclipse,maven,java,Eclipse,Maven,Java,在我的开发机器上,我安装了JDK1.7,但我们正在打包软件,以便与Java1.5和1.6一起使用。设置-source和-target选项很容易,因此语法将强制为特定版本,并且输出类可由特定VM解释。但是还有其他版本的ISM让我很头疼,比如2参数构造函数AssertionError(String,Throwable)和其他各种细微的变化 我知道的一个解决方案是安装每种不同的JDK(1.5、1.6、1.7),这样Eclipse就可以完全匹配我的执行环境。有没有其他方法来检测这些问题?如果是Eclip

在我的开发机器上,我安装了JDK1.7,但我们正在打包软件,以便与Java1.5和1.6一起使用。设置
-source
-target
选项很容易,因此语法将强制为特定版本,并且输出类可由特定VM解释。但是还有其他版本的ISM让我很头疼,比如2参数构造函数
AssertionError(String,Throwable)
和其他各种细微的变化


我知道的一个解决方案是安装每种不同的JDK(1.5、1.6、1.7),这样Eclipse就可以完全匹配我的执行环境。有没有其他方法来检测这些问题?如果是Eclipse或Maven工具,则可获得额外积分。

有帮助吗?这是命令行,我见过有人用它来检测java7的使用。

Codehaus怎么样?我还没有理由尝试它,但我觉得它看起来很有趣。

老实说,这样做的“正确”方法可能是使所有代码都与最低公分母兼容。我记得有一次我为一个项目将代码级别设置为1.5,eclipse使用1.6进行编译。我不小心在代码中使用了String.isEmpty()(在1.6中引入),在客户端实际部署并运行它之前,它没有被注意到。所以,不要冒险,确保使用正确的平台进行测试。通过设置源和目标级别,您无法确保未使用更高版本中引入的某些API。您可以在编译时设置引导类路径,但这仍然需要安装相应的JDK。因此,安装不同的JDK并使用它们运行构建仍然是最简单的方法。正如你们所想,Eclipse为你们做这件事,所以它应该很容易使用。是的,你们可能是对的。这只是一个痛苦,因为我没有根,所以每当有更新时,我必须让其他人更新所有的N Java安装,但这是唯一真正确定的方法。不幸的是,这只检查特定VM可解释的类。如果您告诉
javac-target1.5
,它将很高兴地创建1.5虚拟机可以理解的输出,但它使用的是不可用的1.7库。