bennydictor · GitHub

First, we build the Spotbugs distribution.

./gradlew assembleDist
unzip spotbugs/build/distributions/spotbugs-4.0.0-SNAPSHOT.zip

If we create an empty class (this bug happens with all classes, this is just for demonstration purposes),

echo 'public class Test {}' >Test.java
javac Test.java

And place its copy under a directory with spaces in the file name,

mkdir 'i have spaces in the file name'
cp Test.class 'i have spaces in the file name/Test.class'

Then running Spotbugs on the Test.class will, unsurprisingly, produce no errors,

./spotbugs-4.0.0-SNAPSHOT/bin/spotbugs -textui Test.class

But running Spotbugs on the same class, just placed under a directory with spaces in the file name

./spotbugs-4.0.0-SNAPSHOT/bin/spotbugs -textui 'i have spaces in the file name/Test.class'

Produces the following error:

Exception in thread "main" java.io.IOException: No files to analyze could be opened
        at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:274)
        at edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:394)
        at edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1185)

Read the original on github.com ↗