Программно скомпилировать Java с помощью JavaCompiler?

Я получил этот код Java из другого потока переполнения стека

import java.io.*;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;

public class Main {
  public static void main(String[] args) throws IOException{
    String source = " public class Test { public static void main(String args[]) {     System.out.println(\"hello\"); } }";

    // Save source in .java file.
    File root = new File("C:\\java\\");
    root.mkdir();
    File sourceFile = new File(root, "\\Test.java");
    Writer writer = new FileWriter(sourceFile);
    writer.write(source);
    writer.close();

    // Compile source file.
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    compiler.run(null, null, null, sourceFile.getPath());
  }
}

Но я продолжаю получать такое исключение NullPointerException

Exception in thread "main" java.lang.NullPointerException
    at com.zove.compiler.Main.main(Main.java:24)

Оно имеет компилируется, но вызывает исключение во время выполнения. Что я делаю не так?

5
задан user969931 5 October 2011 в 18:19
поделиться