[英]Java Compiler API NullPointerException
我正在使用此代碼在運行時編譯Java文件。 首先,這是我的目錄樹(在Eclipse中)。
+---- src
+----- package
+------ Compile.java
+
+
+---- temp
+----- anotherpackage
+------ Temp.java (file to compile)
這是我得到NullPointerException的代碼(我已經嘗試將JDK作為Eclipse中的標准VM)。
public static void compile(URI path, InputStream is, OutputStream os, OutputStream err) throws IOException {
SimpleJavaFileObject source = new CustomJavaFileObject(path, Kind.SOURCE);
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
JavaCompiler.CompilationTask task = compiler.getTask(new PrintWriter(err), null, null, null, null, Arrays.asList(source));
task.call();
}
這是CustonJavaFileObject:
class CustomJavaFileObject extends SimpleJavaFileObject {
protected CustomJavaFileObject(URI uri, Kind kind) {
super(uri, kind);
}
}
我究竟做錯了什么?
編輯:
我的PATH中沒有JDK(並且無法添加它)
這是我的堆棧跟蹤:
java.lang.NullPointerException
at package.Compiler.compile(Compiler.java:20)
at package.Interactive.main(Interactive.java:19)
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
導致問題。 與jdk不同,將您的JRE指向JDK內部,jre不提供任何工具。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.