解析javac编译错误[关闭]

问题描述 投票:2回答:1

我已经进行了很多查找,似乎找不到用于解析javac编译错误的现有库。我正在考虑自己实现一个“ javac错误解析器”,但我可以预见,它可能不会很简单(需要考虑的很多位)。

我没有使用ant进行构建(这有很多原因,但是我可以像这样收集javac的输出:

Something.java:1: error: Something is not abstract and does not override abstract method foo(boolean) in InterfaceSomething
public class Something implements InterfaceSomething{
       ^
Something.java:49: error: incompatible types: int cannot be converted to Something[]
        return baz;
               ^
Something.java:55: error: incompatible types: int cannot be converted to Something[]
        return baz;
               ^
Note: Something.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 errors

理想情况下,我想要一个包含“错误”列表的对象。每个“错误”都有一个文件名,行号,描述和代码段。

例如,在这种情况下,错误0将成立:

A String filename = "Something.java"
An int lineNum = 1
A String description = "Something is not abstract and....."
A String codeSnippet ="public class Something implements InterfaceSomething{"

过去尝试进行很多事情的解析,我意识到这通常是一件很艰巨的工作,因为在某些情况下,输出总是会有些许不同或没有预期(因此,我正在寻找有人在其中花费了考虑到这些情况可以节省一些时间,以免我重新发明轮子。

我找不到这个,这似乎很奇怪。有什么想法吗?

编辑:重要-我不是要任何人为我做这件事,我自己完全有能力做到这一点,我只是想对已经存在的可以做到这一点的任何想法或建议。我不是在寻找包含代码的答案,而是在寻找建议此输出格式规则的答案,或者将我定向到一些我找不到的现有库。

java parsing javac
1个回答
3
投票

我认为JavaCompilerJavaCompiler类是您要检查的东西。

这里是我早期项目之一的一些代码

Diagnostic

也有Diagnostic,它可能比标准JavaCompiler更清楚。

© www.soinside.com 2019 - 2024. All rights reserved.