我试图在命令行中运行FindBugs,并在指定要分析的项目时遇到麻烦.我理解FindBugs在字节码(.jar,.class)上工作,所以我写了一个HelloWorld程序并确保它有一些凌乱的代码可以被FindBugs检测到.
然后我尝试了:
java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld/bin
Run Code Online (Sandbox Code Playgroud)
哪个例外:
java.lang.IllegalArgumentException: Can't read project from HelloWorld/bin
at edu.umd.cs.findbugs.Project.readProject(Project.java:774)
Run Code Online (Sandbox Code Playgroud)
我也试过.class和.jar文件,但没有出现:
java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld/bin/Main.class
java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld.jar
Run Code Online (Sandbox Code Playgroud)
我说,我检查了FindBugs手册中有关命令行选项"-project"的信息
您指定的项目文件应该是使用GUI界面创建的项目文件.它通常以扩展名.fb或.fbp结尾
我不明白这一点.这是否意味着需要进行一些预处理,FindBugs不能直接检查任意.jar或.class或项目?我如何获得.fb或.fbp扩展名?
谢谢.
FindBugs 网站上描述了该过程:
findbugs以打开 GUI,然后单击“新建项目”HelloWorld。build/classes/main或其他;包结构必须从此目录开始)。(cloud disabled)作为错误存储。下次,您可以通过运行来开始分析
java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld.fbp
Run Code Online (Sandbox Code Playgroud)
如果您不想或无法使用 GUI,可以通过将该-textui选项添加为 findbugs.jar 后的第一个选项来获取纯文本版本。输出格式和行为通过附加命令行选项进行配置。
然而,大多数人使用与其 IDE 集成的 FindBugs,或者作为构建过程的一部分。这两种用例都不需要 GUI 或命令行版本。看看你的 IDE 的插件,它可能会节省你很多时间,而且它们真的很容易使用。
| 归档时间: |
|
| 查看次数: |
5910 次 |
| 最近记录: |