我正在尝试编写一个程序,它可以从 Eclipse 的“问题”视图中提取所有编译器错误(或其他错误的构建路径)。
我还没有找到任何关于如何做到这一点的文档。
我为您提供了三种可能的解决方案:
这是最简单的方法。Eclipse 正在生成构建错误的可视化表示,而您需要结构化的表示,因此它们不匹配。
另一方面,如果您只是从命令行运行javac
,则输出很容易捕获并且相对容易在那里解析。如果您需要更精确地解析错误,请查看JavaCompiler
在您的代码中运行并为其提供自定义DiagnosticListener
。
如果捕获 Eclipse 编译器的一些细微差别很重要,您甚至可以从命令行运行它(以批处理模式)。这里有一篇很好的博客文章描述了这个过程:ECJ - Eclipse Compiler for Java。这是简短版本:在您的 Eclipse 发行版中找到 ECJ jar(我的在 中plugins/org.eclipse.jdt.core_3.8.3.v20130121-145325.jar
)并在命令行上运行它
java -jar <ecj.jar> <sourcefiles>
当然,您也可以在 Java 中运行它以获得更好的控制。
这会很笨拙,但对于测试场景可能很有用,在这些场景中,您希望自动化测试器来验证 Eclipse 项目是否按照您期望的方式构建。
您可以使用 AutoHotKey 或 Sikuli 或 AWT Robot 之类的工具来自动获取错误。我能想到的最简单的例程是这样的:
最后,如果您真正需要的是某种对用户透明的错误消息的实时捕获,那么您将被困住。
您需要进入 Eclipse 源代码,可能是“问题”视图的定义,并对其进行修改以传递您的代码信息。那么任何需要这个的人都必须使用您定制的 Eclipse 版本,而不是标准版本。