In the method fitnesse.testsystems.CommandRunner.asynchronousStart() it uses Java's Runtime.exec() method.
Runtime.exec() has overloaded methods. In some, the command is a String which gets parsed with a java.util.StringTokenizer. In others, the command is already a String and does not get further parsed.
On non-Windows OS's, if there happens to be whitespace in the classpath, then Runtime.exec() will fail using the String versions, but the String versions work.
This issue definitely needs some attention. Using a String to pass the command line arguments is much saver than relying on a string tokenizer.
How should this work in conjunction with the COMMAND_PATTERN, for example?
I tried to fix the issues with pull request #437. Can you check if it works out (or what's missing)?
#437 should fix this.