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)