我试图在命令行中运行FindBugs,并在指定要分析的项目时遇到麻烦。我知道FindBugs可以在字节码(.jar,.class)上工作,所以我编写了一个HelloWorld程序,并确保它有一些乱码,它们会被FindBugs检测到。FindBugs命令行:如何指定要分析的项目?
然后我尝试:
java -jar D:/findbugs-2.0.3/lib/findbugs.jar -project HelloWorld/bin
这引发了异常:
java.lang.IllegalArgumentException: Can't read project from HelloWorld/bin
at edu.umd.cs.findbugs.Project.readProject(Project.java:774)
我也尝试过的.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
我检查FindBugs手册中关于命令行选项“-project”,它说
您指定的项目文件应该是使用GUI界面创建的项目文件。它通常会以扩展名结尾.fb或.fbp
我不明白这一点。这是否意味着需要进行一些预处理,并且FindBugs无法直接检查任何.jar或.class或项目?我怎样才能得到这个.fb或.fbp扩展名?
谢谢。
感谢您的详细说明!我跟着每一步,但当我点击“分析”时,FindBugs GUI弹出一个“分析失败”窗口,说“ArrayIndexOutOfBoundsException:35328”。你有什么想法是什么导致了这种异常?谢谢! – Ida
使用您的错误消息搜索导致我假设您正在使用Java 8?似乎有Java 8的FindBugs问题。尝试使用Java 7进行编译。 –
我尝试了Java 7,问题解决了!谢谢! – Ida