I was going to say that paths with spaces in them are usually problematic, but I see that you've got quotes around yours.
Why does the JAVA_HOME/bin appear in your CLASSPATH? That belongs in PATH.
Why does your application need that QTJava.zip archive for?
The fact that you've got a CLASSPATH suggests that this is an environment variable. I think that's the wrong way to do it. (I don't have a CLASSPATH environment variable on any machine that I use.) A single CLASSPATH doesn't apply to every application that I write. IDEs and JEE containers both ignore it completely, so I don't find it to be very useful.
Your experience suggests that the JDK compiler ignores it, too.
I think the right way to do it is to use the -classpath option for javac.exe. That guarantees that you'll have everything you need when you compile: