JavaCompiler não compilando arquivos corretamente

Eu estou tentando se acostumar com o JavaCompiler e tentando compilar programas com ele, eu posso compilar com êxito programas que compreende de arquivo único, mas quando estou tentando compilar projetos com vários arquivos. Eu recebo erros na compilação de arquivos que implementam outras classes e sempre que a classe usa um método da classe implementada.

Aqui está o código que estou usando para compilar o código java

private final String  directoryForBin = "C:/TempBINfolder/bin";

public List doCompilation(String sourceCode, String locationOfFile) {
   List<String> compile = new ArrayList<>();

    SimpleJavaFileObject fileObject = new DynamicJavaSourceCodeObject(locationOfFile, sourceCode);
    JavaFileObject javaFileObjects[] = new JavaFileObject[]{fileObject};

    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

    StandardJavaFileManager stdFileManager = compiler.getStandardFileManager(null, Locale.getDefault(), null);

    Iterable<? extends JavaFileObject> compilationUnits = Arrays.asList(javaFileObjects);

    // creates a Temp BIN foler on the C: drive to add .class files for compiling      
    new File(directoryForBin).mkdirs();

    String[] compileOptions = new String[]{"-d", directoryForBin, "-classpath", System.getProperty("java.class.path")};
    Iterable<String> compilationOptions = Arrays.asList(compileOptions);

    DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();

    CompilationTask compilerTask = compiler.getTask(null, stdFileManager, diagnostics, compilationOptions, null, compilationUnits);

    boolean status = compilerTask.call();

    if (!status) {//If compilation error occurs 
        // Iterate through each compilation problem and print it
        for (Diagnostic diagnostic : diagnostics.getDiagnostics()) { 
            compile.add(diagnostic.getKind().toString()+" on line  "+ diagnostic.getLineNumber() +"\nIn file:  \n"+ diagnostic.toString()+"\n\n");
        }
    }
    try {
        stdFileManager.close();//Close the file manager
    } catch (IOException e) {
        e.printStackTrace();
    }

    return compile;
}

Aqui está uma amostra de uma das classes que estou tentando compilar

    public class IntegerComparator 
             implements Comparator<Integer>
{
   public IntegerComparator(){}

   public int compare(Integer a, Integer b)
   {  int aValue = a.intValue();
      int bValue = b.intValue();
      return (aValue - bValue);
   }

}

Alguém sabe o que está errado aqui e porque meu código não está encontrando a classe implementada, mesmo que esteja na mesma pasta que a da classe implementando-a?

É porque o pacote não está localizado no topo do programa?

EDIT: Este é o erro de saída para o exemplo acima

ERROR on line  8
In file:  
/projects/Compiler/Studentfilestotest/LAB3/aroc1/a3/IntegerComparator.java:8: error: cannot find symbol
             implements Comparator<Integer>
                        ^
  symbol: class Comparator

Isso é o queSystem.getProperty("java.class.path") está retornando

C:\projects\Compiler\Compiler\Jar Files\jsyntaxpane-0.9.5-b29.jar;
C:\projects\Compiler\Compiler\Jar Files\jtar-1.1.jar;
C:\projects\Compiler\Compiler\Jar Files\sqlitejdbc-v056.jar;
C:\Program Files\NetBeans 7.1.2\java\modules\ext\beansbinding-1.2.1.jar;
C:\Program Files\NetBeans 7.1.2\java\modules\ext\AbsoluteLayout.jar;
C:\projects\Compiler\Compiler\Jar Files\junit-4.11-SNAPSHOT-20120416-1530.jar;
C:\projects\Compiler\Compiler\Jar Files\commons-io-2.4-bin.zip;
C:\projects\Compiler\Compiler\Jar Files\commons-io-2.4\commons-io-2.4.jar;
C:\projects\Compiler\Compiler\Jar Files\poi-3.8\poi-3.8-20120326.jar;
C:\projects\Compiler\Compiler\Jar Files\javamail-1.4.5\mail.jar;
C:\projects\Compiler\Compiler\build\classes

questionAnswers(1)

yourAnswerToTheQuestion