나는 다른 스택 오버플로 스레드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());
}
}
에서이 자바 코드를 가지고 그러나 나는 컴파일을 수행이
Exception in thread "main" java.lang.NullPointerException
at com.zove.compiler.Main.main(Main.java:24)
그것은 같은 NullPointerException이 점점 계속하지만, 런타임시 예외가 발생합니다. 내가 뭘 잘못하고 있니?
어떤 행이'Main.java : 24'입니까? 'ToolProvider.getSystemJavaCompiler()'는 null을 돌려 주나요? – mpartel
코드 길이가 21 줄에 불과하므로 NPE가 24 행에서 어떻게 발생하는지 알 수 없습니다. 도움을 요청하려는 사람들의 시간을 낭비하려는 의도가 있습니까? 어떤 코드 ** ** 실제로 사용하고 있습니까? –
@AndrewThompson이 질문에 대해 살펴볼 수 있습니까? http://stackoverflow.com/questions/36583278/how-can-compile-i-java-file-in-jsp – sony