Find is overkill for this.
for file in *.java; do
[[ -f $file ]] || continue
javac "$file"
done for file in *.java; do
[[ -f $file ]] || continue
javac "$file"
doneIt works in Bash on Cygwin and OS X.
touch "file with spaces"
for f in *; do if [[ -f $f ]]; then echo file: $f; fi; done;
This echoes one line for "file with spaces". % for blah in *.java; do echo $blah; done
zsh: no matches found: *.java [[ -f "$file" ]] || continue