我試圖在命令行中運行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